diff options
-rw-r--r-- | include/litmus/sched_trace.h | 40 | ||||
-rw-r--r-- | include/trace/events/litmus.h | 50 | ||||
-rw-r--r-- | litmus/litmus.c | 2 |
3 files changed, 35 insertions, 57 deletions
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index 2f992789affb..fa7042f744cb 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h | |||
@@ -208,6 +208,15 @@ feather_callback void do_sched_trace_task_tardy(unsigned long id, | |||
208 | #define trace_litmus_server_release(sid, job, release, deadline) | 208 | #define trace_litmus_server_release(sid, job, release, deadline) |
209 | #define trace_litmus_server_completion(sid, job) | 209 | #define trace_litmus_server_completion(sid, job) |
210 | 210 | ||
211 | #define trace_litmus_container_param(cid, name) | ||
212 | #define trace_litmus_server_param(sid, cid, wcet, time) | ||
213 | #define trace_litmus_server_switch_to(sid, job, tid, tjob, cpu) | ||
214 | #define trace_litmus_server_switch_away(sid, job, tid, tjob, cpu) | ||
215 | #define trace_litmus_server_release(sid, job, release, deadline) | ||
216 | #define trace_litmus_server_completion(sid, job) | ||
217 | #define trace_litmus_server_block(sid) | ||
218 | #define trace_litmus_server_resume(sid) | ||
219 | |||
211 | #endif | 220 | #endif |
212 | 221 | ||
213 | 222 | ||
@@ -296,25 +305,6 @@ feather_callback void do_sched_trace_task_tardy(unsigned long id, | |||
296 | trace_litmus_sys_release(when); \ | 305 | trace_litmus_sys_release(when); \ |
297 | } while (0) | 306 | } while (0) |
298 | 307 | ||
299 | #define sched_trace_task_exit(t) \ | ||
300 | do { \ | ||
301 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 11, \ | ||
302 | do_sched_trace_task_exit, t); \ | ||
303 | trace_litmus_task_exit(t); \ | ||
304 | } while (0) | ||
305 | |||
306 | |||
307 | #define sched_trace_task_tardy(t) \ | ||
308 | do { \ | ||
309 | SCHED_TRACE(SCHED_TRACE_BASE_ID + 12, \ | ||
310 | do_sched_trace_task_tardy, t); \ | ||
311 | } while (0) | ||
312 | |||
313 | #define QT_START lt_t _qt_start = litmus_clock() | ||
314 | #define QT_END \ | ||
315 | sched_trace_log_message("%d P%d [%s@%s:%d]: Took %llu\n\n", \ | ||
316 | TRACE_ARGS, litmus_clock() - _qt_start) | ||
317 | |||
318 | #define sched_trace_container_param(cid, name) \ | 308 | #define sched_trace_container_param(cid, name) \ |
319 | do { \ | 309 | do { \ |
320 | trace_litmus_container_param(cid, name); \ | 310 | trace_litmus_container_param(cid, name); \ |
@@ -325,19 +315,19 @@ feather_callback void do_sched_trace_task_tardy(unsigned long id, | |||
325 | trace_litmus_server_param(sid, cid, wcet, period); \ | 315 | trace_litmus_server_param(sid, cid, wcet, period); \ |
326 | } while(0) | 316 | } while(0) |
327 | 317 | ||
328 | #define sched_trace_server_switch_to(sid, job, tid) \ | 318 | #define sched_trace_server_switch_to(sid, job, tid, tjob, cpu) \ |
329 | do { \ | 319 | do { \ |
330 | trace_litmus_server_switch_to(sid, job, tid); \ | 320 | trace_litmus_server_switch_to(sid, job, tid, tjob, cpu);\ |
331 | } while(0) | 321 | } while(0) |
332 | 322 | ||
333 | #define sched_trace_server_switch_away(sid, job, tid) \ | 323 | #define sched_trace_server_switch_away(sid, job, tid, tjob, cpu) \ |
334 | do { \ | 324 | do { \ |
335 | trace_litmus_server_switch_away(sid, job, tid); \ | 325 | trace_litmus_server_switch_away(sid, job, tid, tjob, cpu);\ |
336 | } while (0) | 326 | } while (0) |
337 | 327 | ||
338 | #define sched_trace_server_release(sid, job, rel, dead) \ | 328 | #define sched_trace_server_release(sid, job, release, deadline) \ |
339 | do { \ | 329 | do { \ |
340 | trace_litmus_server_release(sid, job, rel, dead); \ | 330 | trace_litmus_server_release(sid, job, release, deadline); \ |
341 | } while (0) | 331 | } while (0) |
342 | 332 | ||
343 | #define sched_trace_server_completion(sid, job) \ | 333 | #define sched_trace_server_completion(sid, job) \ |
diff --git a/include/trace/events/litmus.h b/include/trace/events/litmus.h index c3a92f8ec6ef..ba4217bc7049 100644 --- a/include/trace/events/litmus.h +++ b/include/trace/events/litmus.h | |||
@@ -275,28 +275,6 @@ TRACE_EVENT(litmus_sys_release, | |||
275 | ); | 275 | ); |
276 | 276 | ||
277 | /* | 277 | /* |
278 | * Trace task exit | ||
279 | */ | ||
280 | TRACE_EVENT(litmus_task_exit, | ||
281 | |||
282 | TP_PROTO(struct task_struct *t), | ||
283 | |||
284 | TP_ARGS(t), | ||
285 | |||
286 | TP_STRUCT__entry( | ||
287 | __field( pid_t, pid ) | ||
288 | __field( unsigned long long, max_exec_time ) | ||
289 | ), | ||
290 | |||
291 | TP_fast_assign( | ||
292 | __entry->pid = t ? t->pid : 0; | ||
293 | __entry->max_exec_time = t ? t->rt_param.max_exec_time : 0; | ||
294 | ), | ||
295 | |||
296 | TP_printk("(%u) exit\n", __entry->pid) | ||
297 | ); | ||
298 | |||
299 | /* | ||
300 | * Containers | 278 | * Containers |
301 | */ | 279 | */ |
302 | TRACE_EVENT(litmus_container_param, | 280 | TRACE_EVENT(litmus_container_param, |
@@ -344,43 +322,54 @@ TRACE_EVENT(litmus_server_param, | |||
344 | 322 | ||
345 | TRACE_EVENT(litmus_server_switch_to, | 323 | TRACE_EVENT(litmus_server_switch_to, |
346 | 324 | ||
347 | TP_PROTO(int sid, unsigned int job, int tid), | 325 | TP_PROTO(int sid, unsigned int job, int tid, unsigned int tjob, int cpu), |
348 | 326 | ||
349 | TP_ARGS(sid, job, tid), | 327 | TP_ARGS(sid, job, tid, tjob, cpu), |
350 | 328 | ||
351 | TP_STRUCT__entry( | 329 | TP_STRUCT_entry( |
352 | __field( int, sid) | 330 | __field( int, sid) |
353 | __field( unsigned int, job) | 331 | __field( unsigned int, job) |
354 | __field( int, tid) | 332 | __field( int, tid) |
333 | __field( unsigned int, tjob) | ||
334 | __field( int, cpu) | ||
355 | ), | 335 | ), |
356 | 336 | ||
357 | TP_fast_assign( | 337 | TP_fast_assign( |
358 | __entry->sid = sid; | 338 | __entry->sid = sid; |
359 | __entry->tid = tid; | 339 | __entry->tid = tid; |
360 | __entry->job = job; | 340 | __entry->job = job; |
341 | __entry->tjob = tjob; | ||
342 | __entry->cpu = cpu; | ||
361 | ), | 343 | ), |
362 | 344 | ||
363 | TP_printk("switch_to(server(%d, %u)): %d\n", __entry->sid, __entry->job, __entry->tid) | 345 | TP_printk("switch_to(server(%d, %u)): (%d, %d) on %d\n", |
346 | __entry->sid, __entry->job, __entry->tid, __entry->tjob, __entry->cpu) | ||
364 | ); | 347 | ); |
365 | 348 | ||
366 | TRACE_EVENT(litmus_server_switch_away, | 349 | TRACE_EVENT(litmus_server_switch_away, |
367 | 350 | ||
368 | TP_PROTO(int sid, unsigned int job, int tid), | 351 | TP_PROTO(int sid, unsigned int job, int tid, unsigned int tjob, int cpu), |
369 | 352 | ||
370 | TP_ARGS(sid, job, tid), | 353 | TP_ARGS(sid, job, tid, tjob, cpu), |
371 | 354 | ||
372 | TP_STRUCT__entry( | 355 | TP_STRUCT__entry( |
373 | __field( int, sid) | 356 | __field( int, sid) |
374 | __field( unsigned int, job) | 357 | __field( unsigned int, job) |
375 | __field( int, tid) | 358 | __field( int, tid) |
359 | __field( unsigned int, tjob) | ||
360 | __field( int, cpu) | ||
376 | ), | 361 | ), |
377 | 362 | ||
378 | TP_fast_assign( | 363 | TP_fast_assign( |
379 | __entry->sid = sid; | 364 | __entry->sid = sid; |
380 | __entry->tid = tid; | 365 | __entry->tid = tid; |
366 | __entry->job = job; | ||
367 | __entry->tjob = tjob; | ||
368 | __entry->cpu = cpu; | ||
381 | ), | 369 | ), |
382 | 370 | ||
383 | TP_printk("switch_away(server(%d, %u)): %d\n", __entry->sid, __entry->job, __entry->tid) | 371 | TP_printk("switch_away(server(%d, %u)): (%d, %d) on %d\n", |
372 | __entry->sid, __entry->job, __entry->tid, __entry->tjob, __entry->cpu) | ||
384 | ); | 373 | ); |
385 | 374 | ||
386 | TRACE_EVENT(litmus_server_release, | 375 | TRACE_EVENT(litmus_server_release, |
@@ -405,7 +394,8 @@ TRACE_EVENT(litmus_server_release, | |||
405 | __entry->deadline = deadline; | 394 | __entry->deadline = deadline; |
406 | ), | 395 | ), |
407 | 396 | ||
408 | TP_printk("release(server(%d, %u)), release: %llu, deadline: %llu\n", __entry->sid, __entry->job, __entry->release, __entry->deadline) | 397 | TP_printk("release(server(%d, %u)), release: %llu, deadline: %llu\n", |
398 | __entry->sid, __entry->job, __entry->release, __entry->deadline) | ||
409 | ); | 399 | ); |
410 | 400 | ||
411 | TRACE_EVENT(litmus_server_completion, | 401 | TRACE_EVENT(litmus_server_completion, |
diff --git a/litmus/litmus.c b/litmus/litmus.c index 3516463663bc..dc94be71bfb6 100644 --- a/litmus/litmus.c +++ b/litmus/litmus.c | |||
@@ -384,8 +384,6 @@ void litmus_exit_task(struct task_struct* tsk) | |||
384 | { | 384 | { |
385 | if (is_realtime(tsk)) { | 385 | if (is_realtime(tsk)) { |
386 | sched_trace_task_completion(tsk, 1); | 386 | sched_trace_task_completion(tsk, 1); |
387 | sched_trace_task_exit(tsk); | ||
388 | sched_trace_task_tardy(tsk); | ||
389 | 387 | ||
390 | litmus->task_exit(tsk); | 388 | litmus->task_exit(tsk); |
391 | 389 | ||