diff options
| author | Glenn Elliott <gelliott@cs.unc.edu> | 2010-11-29 11:41:40 -0500 |
|---|---|---|
| committer | Glenn Elliott <gelliott@cs.unc.edu> | 2010-11-29 11:41:40 -0500 |
| commit | f2ddb884f2300cd7709237975206e5b9d9b18445 (patch) | |
| tree | 76a932872cf8c42f780a3499fb76cee372ce0c91 /include | |
| parent | 4c5c517602f595092979716bacf565fc333ad5fe (diff) | |
Add sched_trace data for Apative EDZLwip-aedzl-revised
Added new trace event, st_task_completion_adaptive, to trace estimated
execution time and estimation error when an AEDZL task completes.
Diffstat (limited to 'include')
| -rw-r--r-- | include/litmus/sched_trace.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index e1b0c9712b5f..237d1e1641d0 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h | |||
| @@ -57,6 +57,12 @@ struct st_completion_data { /* A job completed. */ | |||
| 57 | u8 __unused[3]; | 57 | u8 __unused[3]; |
| 58 | }; | 58 | }; |
| 59 | 59 | ||
| 60 | struct st_completion_adaptive_data { /* Extra completion data for AEDZL */ | ||
| 61 | u32 estimated_exe; | ||
| 62 | s32 accumulated_err; | ||
| 63 | u8 __unused[8]; | ||
| 64 | }; | ||
| 65 | |||
| 60 | struct st_block_data { /* A task blocks. */ | 66 | struct st_block_data { /* A task blocks. */ |
| 61 | u64 when; | 67 | u64 when; |
| 62 | u64 __unused; | 68 | u64 __unused; |
| @@ -86,6 +92,7 @@ typedef enum { | |||
| 86 | ST_BLOCK, | 92 | ST_BLOCK, |
| 87 | ST_RESUME, | 93 | ST_RESUME, |
| 88 | ST_SYS_RELEASE, | 94 | ST_SYS_RELEASE, |
| 95 | ST_COMPLETION_ADAPTIVE | ||
| 89 | } st_event_record_type_t; | 96 | } st_event_record_type_t; |
| 90 | 97 | ||
| 91 | struct st_event_record { | 98 | struct st_event_record { |
| @@ -100,6 +107,7 @@ struct st_event_record { | |||
| 100 | DATA(switch_to); | 107 | DATA(switch_to); |
| 101 | DATA(switch_away); | 108 | DATA(switch_away); |
| 102 | DATA(completion); | 109 | DATA(completion); |
| 110 | DATA(completion_adaptive); | ||
| 103 | DATA(block); | 111 | DATA(block); |
| 104 | DATA(resume); | 112 | DATA(resume); |
| 105 | DATA(sys_release); | 113 | DATA(sys_release); |
| @@ -136,6 +144,8 @@ feather_callback void do_sched_trace_task_switch_away(unsigned long id, | |||
| 136 | feather_callback void do_sched_trace_task_completion(unsigned long id, | 144 | feather_callback void do_sched_trace_task_completion(unsigned long id, |
| 137 | struct task_struct* task, | 145 | struct task_struct* task, |
| 138 | unsigned long forced); | 146 | unsigned long forced); |
| 147 | feather_callback void do_sched_trace_task_completion_adaptive(unsigned long id, | ||
| 148 | struct task_struct* task); | ||
| 139 | feather_callback void do_sched_trace_task_block(unsigned long id, | 149 | feather_callback void do_sched_trace_task_block(unsigned long id, |
| 140 | struct task_struct* task); | 150 | struct task_struct* task); |
| 141 | feather_callback void do_sched_trace_task_resume(unsigned long id, | 151 | feather_callback void do_sched_trace_task_resume(unsigned long id, |
| @@ -175,6 +185,8 @@ feather_callback void do_sched_trace_sys_release(unsigned long id, | |||
| 175 | /* when is a pointer, it does not need an explicit cast to unsigned long */ | 185 | /* when is a pointer, it does not need an explicit cast to unsigned long */ |
| 176 | #define sched_trace_sys_release(when) \ | 186 | #define sched_trace_sys_release(when) \ |
| 177 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 9, do_sched_trace_sys_release, when) | 187 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 9, do_sched_trace_sys_release, when) |
| 188 | #define sched_trace_task_completion_adaptive(t) \ | ||
| 189 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 10, do_sched_trace_task_completion_adaptive, t) | ||
| 178 | 190 | ||
| 179 | #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ | 191 | #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ |
| 180 | 192 | ||
