|
@@ -618,8 +618,23 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
|
|
|
(entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' :
|
|
|
(entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' :
|
|
|
'.';
|
|
|
- need_resched =
|
|
|
- (entry->flags & TRACE_FLAG_NEED_RESCHED) ? 'N' : '.';
|
|
|
+
|
|
|
+ switch (entry->flags & (TRACE_FLAG_NEED_RESCHED |
|
|
|
+ TRACE_FLAG_PREEMPT_RESCHED)) {
|
|
|
+ case TRACE_FLAG_NEED_RESCHED | TRACE_FLAG_PREEMPT_RESCHED:
|
|
|
+ need_resched = 'N';
|
|
|
+ break;
|
|
|
+ case TRACE_FLAG_NEED_RESCHED:
|
|
|
+ need_resched = 'n';
|
|
|
+ break;
|
|
|
+ case TRACE_FLAG_PREEMPT_RESCHED:
|
|
|
+ need_resched = 'p';
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ need_resched = '.';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
hardsoft_irq =
|
|
|
(hardirq && softirq) ? 'H' :
|
|
|
hardirq ? 'h' :
|