diff options
Diffstat (limited to 'include/litmus/sched_trace.h')
-rw-r--r-- | include/litmus/sched_trace.h | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index 82bde8241298..d3f78a812ef3 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h | |||
@@ -80,6 +80,19 @@ struct st_sys_release_data { | |||
80 | u64 release; | 80 | u64 release; |
81 | }; | 81 | }; |
82 | 82 | ||
83 | struct st_pgm_param_data { | ||
84 | u32 node_type; | ||
85 | u16 graph_pid; | ||
86 | u16 unused; | ||
87 | u64 expected_graph_etoe; | ||
88 | }; | ||
89 | |||
90 | struct st_pgm_release_data { | ||
91 | u64 release; /* PGM-adjusted release time */ | ||
92 | u64 deadline; /* PGM-adjusted deadline */ | ||
93 | }; | ||
94 | |||
95 | |||
83 | #define DATA(x) struct st_ ## x ## _data x; | 96 | #define DATA(x) struct st_ ## x ## _data x; |
84 | 97 | ||
85 | typedef enum { | 98 | typedef enum { |
@@ -94,7 +107,9 @@ typedef enum { | |||
94 | ST_BLOCK, | 107 | ST_BLOCK, |
95 | ST_RESUME, | 108 | ST_RESUME, |
96 | ST_ACTION, | 109 | ST_ACTION, |
97 | ST_SYS_RELEASE | 110 | ST_SYS_RELEASE, |
111 | ST_PGM_PARAM, | ||
112 | ST_PGM_RELEASE | ||
98 | } st_event_record_type_t; | 113 | } st_event_record_type_t; |
99 | 114 | ||
100 | struct st_event_record { | 115 | struct st_event_record { |
@@ -113,6 +128,8 @@ struct st_event_record { | |||
113 | DATA(resume); | 128 | DATA(resume); |
114 | DATA(action); | 129 | DATA(action); |
115 | DATA(sys_release); | 130 | DATA(sys_release); |
131 | DATA(pgm_param); | ||
132 | DATA(pgm_release); | ||
116 | } data; | 133 | } data; |
117 | }; | 134 | }; |
118 | 135 | ||
@@ -154,6 +171,10 @@ feather_callback void do_sched_trace_action(unsigned long id, | |||
154 | unsigned long action); | 171 | unsigned long action); |
155 | feather_callback void do_sched_trace_sys_release(unsigned long id, | 172 | feather_callback void do_sched_trace_sys_release(unsigned long id, |
156 | lt_t* start); | 173 | lt_t* start); |
174 | feather_callback void do_sched_trace_pgm_param(unsigned long id, | ||
175 | struct task_struct* task); | ||
176 | feather_callback void do_sched_trace_pgm_release(unsigned long id, | ||
177 | struct task_struct* task); | ||
157 | 178 | ||
158 | #endif | 179 | #endif |
159 | 180 | ||
@@ -179,6 +200,8 @@ feather_callback void do_sched_trace_sys_release(unsigned long id, | |||
179 | #define trace_litmus_task_block(t) | 200 | #define trace_litmus_task_block(t) |
180 | #define trace_litmus_task_resume(t) | 201 | #define trace_litmus_task_resume(t) |
181 | #define trace_litmus_sys_release(start) | 202 | #define trace_litmus_sys_release(start) |
203 | #define trace_litmus_pgm_param(t) | ||
204 | #define trace_litmus_pgm_release(t) | ||
182 | 205 | ||
183 | #endif | 206 | #endif |
184 | 207 | ||
@@ -252,6 +275,20 @@ feather_callback void do_sched_trace_sys_release(unsigned long id, | |||
252 | trace_litmus_sys_release(when); \ | 275 | trace_litmus_sys_release(when); \ |
253 | } while (0) | 276 | } while (0) |
254 | 277 | ||
278 | #define sched_trace_pgm_param(t) \ | ||
279 | do { \ | ||
280 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 11, \ | ||
281 | do_sched_trace_pgm_param, t); \ | ||
282 | trace_litmus_pgm_param(t); \ | ||
283 | } while (0) | ||
284 | |||
285 | #define sched_trace_pgm_release(t) \ | ||
286 | do { \ | ||
287 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 12, \ | ||
288 | do_sched_trace_pgm_release, t); \ | ||
289 | trace_litmus_pgm_release(t); \ | ||
290 | } while (0) | ||
291 | |||
255 | #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ | 292 | #define sched_trace_quantum_boundary() /* NOT IMPLEMENTED */ |
256 | 293 | ||
257 | #endif /* __KERNEL__ */ | 294 | #endif /* __KERNEL__ */ |