Messages in this thread | | | Date | Mon, 21 Mar 2011 20:48:42 +0300 | From | Cyrill Gorcunov <> | Subject | Re: [PATCH] x86, UV: Fix NMI handler for UV platforms |
| |
On 03/21/2011 08:34 PM, Jack Steiner wrote: .... >>>> >>>> I must admit I've missed the fact that Jack has tried NMIs priorities, right? >>>> x86_platform_ops seems to be a cleaner indeed (btw I think p4 pmu kgdb issue >>>> is exactly the same problem) but same time this might end up in over-swelled >>>> ideas behind this small code snippet. Dunno. Probably we need some per-cpu >>>> system status for nmi reasons other than unknown nmis... >>> >>> We use KDB internally, and yes, it has the same issue. The version of the >>> patch that uses KDB OR's the "handled" status for both KDB & the UV NMI handler. >>> If either KDB or the UV NMI handler returns "handled", the code in traps.c exits >>> after the call to the first die notifier. >>> >>> Not particularily pretty but I could not find a better way to do it. >>> >>> --- jack >> >> Another option might be to add pre-nmi notifier chain, which of course >> not much differ from platform ops but I guess platform ops stands mostly >> for one-shot events while chain might be more flexible. Ie I mean something >> like >> >> if (notify_pre_die(DIE_NMI, "nmi", regs, 0, 2, SIGINT) == NOTIFY_STOP) >> return; > > You still need to process both chains in order to handle the case where both > hw_perf & the SGI BMC raise NMIs at about the same time. > > --- jack
yes, but I meant to simply call this chain before the regular notify_die. Anyway it would look ugly as hell too.
-- Cyrill
| |