diff options
author | Andrew Vagin <avagin@openvz.org> | 2011-11-28 04:03:35 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-12-06 02:51:23 -0500 |
commit | b781a602ac745ee3d5d745276f1e1905a2c101f9 (patch) | |
tree | bae4134842fba8c0e8ab22a205b73f21eba6c1d4 | |
parent | 391e43da797a96aeb65410281891f6d0b0e9611c (diff) |
events, sched: Add tracepoint for accounting blocked time
This tracepoint shows how long a task is sleeping in uninterruptible state.
E.g. it may show how long and where a mutex is waited for.
Signed-off-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1322471015-107825-8-git-send-email-avagin@openvz.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | include/trace/events/sched.h | 7 | ||||
-rw-r--r-- | kernel/sched/fair.c | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 959ff18b63b..e33ed1bfa11 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -331,6 +331,13 @@ DEFINE_EVENT(sched_stat_template, sched_stat_iowait, | |||
331 | TP_ARGS(tsk, delay)); | 331 | TP_ARGS(tsk, delay)); |
332 | 332 | ||
333 | /* | 333 | /* |
334 | * Tracepoint for accounting blocked time (time the task is in uninterruptible). | ||
335 | */ | ||
336 | DEFINE_EVENT(sched_stat_template, sched_stat_blocked, | ||
337 | TP_PROTO(struct task_struct *tsk, u64 delay), | ||
338 | TP_ARGS(tsk, delay)); | ||
339 | |||
340 | /* | ||
334 | * Tracepoint for accounting runtime (time the task is executing | 341 | * Tracepoint for accounting runtime (time the task is executing |
335 | * on a CPU). | 342 | * on a CPU). |
336 | */ | 343 | */ |
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index cd3b64219d9..7c62e2bf234 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -1030,6 +1030,8 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) | |||
1030 | trace_sched_stat_iowait(tsk, delta); | 1030 | trace_sched_stat_iowait(tsk, delta); |
1031 | } | 1031 | } |
1032 | 1032 | ||
1033 | trace_sched_stat_blocked(tsk, delta); | ||
1034 | |||
1033 | /* | 1035 | /* |
1034 | * Blocking time is in units of nanosecs, so shift by | 1036 | * Blocking time is in units of nanosecs, so shift by |
1035 | * 20 to get a milliseconds-range estimation of the | 1037 | * 20 to get a milliseconds-range estimation of the |