diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-09-20 15:13:34 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-09-21 10:56:41 -0400 |
commit | a8027073eb127cd207070891374b5c54c2ce3d23 (patch) | |
tree | 27f5dc8effe3b5636d4bab9c890a40aa20fa44e6 | |
parent | b3bc211cfe7d5fe94b310480d78e00bea96fbf2a (diff) |
tracing/sched: Add sched_pi_setprio tracepoint
Add a tracepoint that shows the priority of a task being boosted
via priority inheritance.
Cc: Gregory Haskins <ghaskins@novell.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | include/trace/events/sched.h | 29 | ||||
-rw-r--r-- | kernel/sched.c | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 9208c92aeab5..f6334782a593 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -362,6 +362,35 @@ TRACE_EVENT(sched_stat_runtime, | |||
362 | (unsigned long long)__entry->vruntime) | 362 | (unsigned long long)__entry->vruntime) |
363 | ); | 363 | ); |
364 | 364 | ||
365 | /* | ||
366 | * Tracepoint for showing priority inheritance modifying a tasks | ||
367 | * priority. | ||
368 | */ | ||
369 | TRACE_EVENT(sched_pi_setprio, | ||
370 | |||
371 | TP_PROTO(struct task_struct *tsk, int newprio), | ||
372 | |||
373 | TP_ARGS(tsk, newprio), | ||
374 | |||
375 | TP_STRUCT__entry( | ||
376 | __array( char, comm, TASK_COMM_LEN ) | ||
377 | __field( pid_t, pid ) | ||
378 | __field( int, oldprio ) | ||
379 | __field( int, newprio ) | ||
380 | ), | ||
381 | |||
382 | TP_fast_assign( | ||
383 | memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); | ||
384 | __entry->pid = tsk->pid; | ||
385 | __entry->oldprio = tsk->prio; | ||
386 | __entry->newprio = newprio; | ||
387 | ), | ||
388 | |||
389 | TP_printk("comm=%s pid=%d oldprio=%d newprio=%d", | ||
390 | __entry->comm, __entry->pid, | ||
391 | __entry->oldprio, __entry->newprio) | ||
392 | ); | ||
393 | |||
365 | #endif /* _TRACE_SCHED_H */ | 394 | #endif /* _TRACE_SCHED_H */ |
366 | 395 | ||
367 | /* This part must be outside protection */ | 396 | /* This part must be outside protection */ |
diff --git a/kernel/sched.c b/kernel/sched.c index 9ca8ad05950b..4ad473814350 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -4355,6 +4355,7 @@ void rt_mutex_setprio(struct task_struct *p, int prio) | |||
4355 | 4355 | ||
4356 | rq = task_rq_lock(p, &flags); | 4356 | rq = task_rq_lock(p, &flags); |
4357 | 4357 | ||
4358 | trace_sched_pi_setprio(p, prio); | ||
4358 | oldprio = p->prio; | 4359 | oldprio = p->prio; |
4359 | prev_class = p->sched_class; | 4360 | prev_class = p->sched_class; |
4360 | on_rq = p->se.on_rq; | 4361 | on_rq = p->se.on_rq; |