diff options
Diffstat (limited to 'include/trace/events/sched.h')
-rw-r--r-- | include/trace/events/sched.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index a581ef211ff5..b48f1ad7c946 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -344,6 +344,101 @@ TRACE_EVENT(sched_signal_send, | |||
344 | __entry->sig, __entry->comm, __entry->pid) | 344 | __entry->sig, __entry->comm, __entry->pid) |
345 | ); | 345 | ); |
346 | 346 | ||
347 | /* | ||
348 | * XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE | ||
349 | * adding sched_stat support to SCHED_FIFO/RR would be welcome. | ||
350 | */ | ||
351 | |||
352 | /* | ||
353 | * Tracepoint for accounting wait time (time the task is runnable | ||
354 | * but not actually running due to scheduler contention). | ||
355 | */ | ||
356 | TRACE_EVENT(sched_stat_wait, | ||
357 | |||
358 | TP_PROTO(struct task_struct *tsk, u64 delay), | ||
359 | |||
360 | TP_ARGS(tsk, delay), | ||
361 | |||
362 | TP_STRUCT__entry( | ||
363 | __array( char, comm, TASK_COMM_LEN ) | ||
364 | __field( pid_t, pid ) | ||
365 | __field( u64, delay ) | ||
366 | ), | ||
367 | |||
368 | TP_fast_assign( | ||
369 | memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); | ||
370 | __entry->pid = tsk->pid; | ||
371 | __entry->delay = delay; | ||
372 | ) | ||
373 | TP_perf_assign( | ||
374 | __perf_count(delay); | ||
375 | ), | ||
376 | |||
377 | TP_printk("task: %s:%d wait: %Lu [ns]", | ||
378 | __entry->comm, __entry->pid, | ||
379 | (unsigned long long)__entry->delay) | ||
380 | ); | ||
381 | |||
382 | /* | ||
383 | * Tracepoint for accounting sleep time (time the task is not runnable, | ||
384 | * including iowait, see below). | ||
385 | */ | ||
386 | TRACE_EVENT(sched_stat_sleep, | ||
387 | |||
388 | TP_PROTO(struct task_struct *tsk, u64 delay), | ||
389 | |||
390 | TP_ARGS(tsk, delay), | ||
391 | |||
392 | TP_STRUCT__entry( | ||
393 | __array( char, comm, TASK_COMM_LEN ) | ||
394 | __field( pid_t, pid ) | ||
395 | __field( u64, delay ) | ||
396 | ), | ||
397 | |||
398 | TP_fast_assign( | ||
399 | memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); | ||
400 | __entry->pid = tsk->pid; | ||
401 | __entry->delay = delay; | ||
402 | ) | ||
403 | TP_perf_assign( | ||
404 | __perf_count(delay); | ||
405 | ), | ||
406 | |||
407 | TP_printk("task: %s:%d sleep: %Lu [ns]", | ||
408 | __entry->comm, __entry->pid, | ||
409 | (unsigned long long)__entry->delay) | ||
410 | ); | ||
411 | |||
412 | /* | ||
413 | * Tracepoint for accounting iowait time (time the task is not runnable | ||
414 | * due to waiting on IO to complete). | ||
415 | */ | ||
416 | TRACE_EVENT(sched_stat_iowait, | ||
417 | |||
418 | TP_PROTO(struct task_struct *tsk, u64 delay), | ||
419 | |||
420 | TP_ARGS(tsk, delay), | ||
421 | |||
422 | TP_STRUCT__entry( | ||
423 | __array( char, comm, TASK_COMM_LEN ) | ||
424 | __field( pid_t, pid ) | ||
425 | __field( u64, delay ) | ||
426 | ), | ||
427 | |||
428 | TP_fast_assign( | ||
429 | memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); | ||
430 | __entry->pid = tsk->pid; | ||
431 | __entry->delay = delay; | ||
432 | ) | ||
433 | TP_perf_assign( | ||
434 | __perf_count(delay); | ||
435 | ), | ||
436 | |||
437 | TP_printk("task: %s:%d iowait: %Lu [ns]", | ||
438 | __entry->comm, __entry->pid, | ||
439 | (unsigned long long)__entry->delay) | ||
440 | ); | ||
441 | |||
347 | #endif /* _TRACE_SCHED_H */ | 442 | #endif /* _TRACE_SCHED_H */ |
348 | 443 | ||
349 | /* This part must be outside protection */ | 444 | /* This part must be outside protection */ |