From: Ingo Molnar <mingo@elte.hu>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Prarit Bhargava <prarit@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org, arozansk@redhat.com,
dzickus@redhat.com, Thomas.Mingarelli@hp.com, ak@linux.intel.com,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Thomas Gleixner <tglx@linutronix.de>,
"Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: [PATCH RFC] NMI Re-introduce un[set]_nmi_callback
Date: Thu, 4 Sep 2008 17:18:32 +0200 [thread overview]
Message-ID: <20080904151832.GA7120@elte.hu> (raw)
In-Reply-To: <48BFFAFB.6060907@zytor.com>
* H. Peter Anvin <hpa@zytor.com> wrote:
> Ingo Molnar wrote:
>>
>> i'd much rather attack this general problem from this angle:
>>
>> static inline unsigned char get_nmi_reason(void)
>> {
>> return inb(0x61);
>> }
>>
>> that port 61H read is both arcane (on modern chipsets) and broken on
>> multiple levels. It's racy and SMP unsafe to begin with, if there's any
>> mixture of intentional cross-CPU or CPU self-generated NMIs mixed with
>> chipset generated NMIs.
>>
>> One possible approach would be to get rid of it, and to perhaps
>> register a low-priority die notifier on systems where we know port 61
>> reads+writes to be safe and desired. Modern systems will emit MCEs in
>> most cases anyway, not NMIs.
>>
>
> I believe we should still do it, but as the lowest priority "nothing
> else claimed this". It reflects a system error and not all systems
> will generate #MC instead of NMI for all system errors.
>
> Pretty much what you're saying above.
ok. One potential additional concern i can think of is multi-source
NMIs: NMIs, when generated by some sort of hardware are edge triggered
most of the time, so if in the notifier chain a notifier decides "this
was for me, return now", we will lose an event.
So i think we should iterate through all notifier entries and call them
(even if all of them indicate that they handled it), and determine
whether at least one notifier handled something. If nothing handled the
NMI _then_ do the port 61H logic as a final fall-back thing.
Ingo
next prev parent reply other threads:[~2008-09-04 15:19 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-04 13:07 [PATCH RFC] NMI Re-introduce un[set]_nmi_callback Prarit Bhargava
2008-09-04 13:37 ` Peter Zijlstra
2008-09-04 14:29 ` Prarit Bhargava
2008-09-04 14:49 ` aris
2008-09-04 14:56 ` Ingo Molnar
2008-09-04 15:12 ` H. Peter Anvin
2008-09-04 15:18 ` Ingo Molnar [this message]
2008-09-04 15:52 ` Andi Kleen
2008-09-04 17:20 ` Don Zickus
2008-09-04 17:52 ` Andi Kleen
2008-09-04 18:26 ` Don Zickus
2008-09-04 18:47 ` Andi Kleen
2008-09-04 19:08 ` Vivek Goyal
2008-09-04 20:00 ` Andi Kleen
2008-09-04 20:01 ` Mingarelli, Thomas
2008-09-04 20:19 ` Andi Kleen
2008-09-04 20:21 ` Mingarelli, Thomas
2008-09-04 20:53 ` Andi Kleen
2008-09-04 21:22 ` Don Zickus
2008-09-04 20:57 ` Vivek Goyal
2008-09-04 21:05 ` Mingarelli, Thomas
2008-09-04 21:21 ` Vivek Goyal
2008-09-04 21:24 ` Don Zickus
2008-09-04 21:46 ` Vivek Goyal
2008-09-05 8:57 ` Ingo Molnar
2008-09-05 10:24 ` Ingo Molnar
2008-09-05 9:33 ` Ingo Molnar
2008-09-05 14:16 ` Vivek Goyal
2008-09-05 14:18 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080904151832.GA7120@elte.hu \
--to=mingo@elte.hu \
--cc=Thomas.Mingarelli@hp.com \
--cc=ak@linux.intel.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arozansk@redhat.com \
--cc=dzickus@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@linux-mips.org \
--cc=peterz@infradead.org \
--cc=prarit@redhat.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox