diff options
author | Peter Zijlstra <peterz@infradead.org> | 2013-10-04 11:28:26 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-11-11 06:43:39 -0500 |
commit | e5137b50a0640009fd63a3e65c14bc6e1be8796a (patch) | |
tree | ef8475a7281a78d7ad7bd6694b44c8a32c12f970 /kernel/trace/trace_output.c | |
parent | 7053ea1a34fa8567cb5e3c39e04ace4c5d0fbeaa (diff) |
ftrace, sched: Add TRACE_FLAG_PREEMPT_RESCHED
Since the introduction of PREEMPT_NEED_RESCHED in:
f27dde8deef3 ("sched: Add NEED_RESCHED to the preempt_count")
we need to be able to look at both TIF_NEED_RESCHED and
PREEMPT_NEED_RESCHED to understand the full preemption behaviour.
Add it to the trace output.
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Link: http://lkml.kernel.org/r/20131004152826.GP3081@twins.programming.kicks-ass.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/trace/trace_output.c')
-rw-r--r-- | kernel/trace/trace_output.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index 34e7cbac0c9c..ed32284fbe32 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c | |||
@@ -618,8 +618,23 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry) | |||
618 | (entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' : | 618 | (entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' : |
619 | (entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' : | 619 | (entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' : |
620 | '.'; | 620 | '.'; |
621 | need_resched = | 621 | |
622 | (entry->flags & TRACE_FLAG_NEED_RESCHED) ? 'N' : '.'; | 622 | switch (entry->flags & (TRACE_FLAG_NEED_RESCHED | |
623 | TRACE_FLAG_PREEMPT_RESCHED)) { | ||
624 | case TRACE_FLAG_NEED_RESCHED | TRACE_FLAG_PREEMPT_RESCHED: | ||
625 | need_resched = 'N'; | ||
626 | break; | ||
627 | case TRACE_FLAG_NEED_RESCHED: | ||
628 | need_resched = 'n'; | ||
629 | break; | ||
630 | case TRACE_FLAG_PREEMPT_RESCHED: | ||
631 | need_resched = 'p'; | ||
632 | break; | ||
633 | default: | ||
634 | need_resched = '.'; | ||
635 | break; | ||
636 | } | ||
637 | |||
623 | hardsoft_irq = | 638 | hardsoft_irq = |
624 | (hardirq && softirq) ? 'H' : | 639 | (hardirq && softirq) ? 'H' : |
625 | hardirq ? 'h' : | 640 | hardirq ? 'h' : |