Re: [PATCH 5/5] x86, nmi: Add better NMI stats to /proc/interrupts and show handlers

From: Ingo Molnar
Date: Wed May 07 2014 - 12:30:57 EST



* Don Zickus <dzickus@xxxxxxxxxx> wrote:

> On Wed, May 07, 2014 at 05:42:31PM +0200, Ingo Molnar wrote:
> >
> > * Don Zickus <dzickus@xxxxxxxxxx> wrote:
> >
> > > The main reason for this patch is because I have a hard time knowing
> > > what NMI handlers are registered on the system when debugging NMI issues.
> > >
> > > This info is provided in /proc/interrupts for interrupt handlers, so I
> > > added support for NMI stuff too. As a bonus it provides stat breakdowns
> > > much like the interrupts.
> > >
> > > The only ugly issue is how to label NMI subtypes using only 3 letters
> > > and still make it obvious it is part of the NMI. Adding a /proc/nmi
> > > seemed overkill, so I choose to indent things by one space. Sample
> > > output is below:
> > >
> > > [root@dhcp71-248 ~]# cat /proc/interrupts
> > > CPU0 CPU1 CPU2 CPU3
> > > 0: 29 0 0 0 IR-IO-APIC-edge timer
> > > <snip>
> > > NMI: 20 774 10986 4227 Non-maskable interrupts
> > > LOC: 21 775 10987 4228 Local PMI, arch_bt
> > > EXT: 0 0 0 0 External plat
> > > UNK: 0 0 0 0 Unknown
> > > SWA: 0 0 0 0 Swallowed
> > > LOC: 30374 24749 20795 15095 Local timer interrupts
> > > SPU: 0 0 0 0 Spurious interrupts
> > > PMI: 20 774 10986 4227 Performance monitoring interrupts
> > > <snip>
> >
> > Looks pretty useful!
> >
> > The lost vertical alignment of the counts is a problem though IMHO.
>
> Agreed! It wasn't obvious to me at the time on how to keep that
> alignment while only changing the first column. I can look at it
> again, if you are ok with the small shift in the first column.
> Otherwise alternate ideas are welcomed. :-)

So I'd just pick a unique 3-letter shortcut for the first column and
not do any shifting. Do the 'these are NMI sub-cases' distinction in
the descripion field. Example mockup:

NMI: 20 774 10986 4227 Non-maskable interrupts
NLC: 21 775 10987 4228 NMI: Local PMI, arch_bt
NXT: 0 0 0 0 NMI: External plat
NUN: 0 0 0 0 NMI: Unknown
NSW: 0 0 0 0 NMI: Swallowed
LOC: 30374 24749 20795 15095 Local timer interrupts

or so.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/