mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 00:21:17 +00:00
tracing: Record and show NMI state
The latency tracer format has a nice column to indicate IRQ state, but this is not able to tell us about NMI state. When tracing perf interrupt handlers (which often run in NMI context) it is very useful to see how the events nest. Link: http://lkml.kernel.org/r/20160318153022.105068893@infradead.org Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
3debb0a9dd
commit
7e6867bf83
3 changed files with 9 additions and 3 deletions
|
@ -389,7 +389,9 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
|
|||
char irqs_off;
|
||||
int hardirq;
|
||||
int softirq;
|
||||
int nmi;
|
||||
|
||||
nmi = entry->flags & TRACE_FLAG_NMI;
|
||||
hardirq = entry->flags & TRACE_FLAG_HARDIRQ;
|
||||
softirq = entry->flags & TRACE_FLAG_SOFTIRQ;
|
||||
|
||||
|
@ -415,10 +417,12 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry)
|
|||
}
|
||||
|
||||
hardsoft_irq =
|
||||
(nmi && hardirq) ? 'Z' :
|
||||
nmi ? 'z' :
|
||||
(hardirq && softirq) ? 'H' :
|
||||
hardirq ? 'h' :
|
||||
softirq ? 's' :
|
||||
'.';
|
||||
hardirq ? 'h' :
|
||||
softirq ? 's' :
|
||||
'.' ;
|
||||
|
||||
trace_seq_printf(s, "%c%c%c",
|
||||
irqs_off, need_resched, hardsoft_irq);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue