[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4D878F7A.7070506@gmail.com>
Date: Mon, 21 Mar 2011 20:48:42 +0300
From: Cyrill Gorcunov <gorcunov@...il.com>
To: Jack Steiner <steiner@....com>
CC: Ingo Molnar <mingo@...e.hu>, Don Zickus <dzickus@...hat.com>,
tglx@...utronix.de, hpa@...or.com, x86@...nel.org,
linux-kernel@...r.kernel.org,
Peter Zijlstra <a.p.zijlstra@...llo.nl>
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists