hc
2024-11-01 2f529f9b558ca1c1bd74be7437a84e4711743404
kernel/kernel/trace/trace_output.c
....@@ -445,14 +445,19 @@
445445 int hardirq;
446446 int softirq;
447447 int nmi;
448
+ int oob;
448449
449450 nmi = entry->flags & TRACE_FLAG_NMI;
450451 hardirq = entry->flags & TRACE_FLAG_HARDIRQ;
451452 softirq = entry->flags & TRACE_FLAG_SOFTIRQ;
453
+ oob = irqs_pipelined() && (entry->flags & TRACE_FLAG_OOB_STAGE);
452454
453455 irqs_off =
456
+ (entry->flags & (TRACE_FLAG_IRQS_OFF|TRACE_FLAG_IRQS_HARDOFF)) ==
457
+ (TRACE_FLAG_IRQS_OFF|TRACE_FLAG_IRQS_HARDOFF) ? '*' :
458
+ (entry->flags & TRACE_FLAG_IRQS_HARDOFF) ? 'D' :
454459 (entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' :
455
- (entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' :
460
+ !irqs_pipelined() && (entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' :
456461 '.';
457462
458463 switch (entry->flags & (TRACE_FLAG_NEED_RESCHED |
....@@ -472,6 +477,8 @@
472477 }
473478
474479 hardsoft_irq =
480
+ (nmi && oob) ? '#' :
481
+ oob ? '~' :
475482 (nmi && hardirq) ? 'Z' :
476483 nmi ? 'z' :
477484 (hardirq && softirq) ? 'H' :