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/litmus/sched_trace.h | |
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/litmus/sched_trace.h')
-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 | ||