From: Robert Richter <robert.richter@amd.com>
To: Huang Ying <ying.huang@intel.com>
Cc: huang ying <huang.ying.caritas@gmail.com>,
Don Zickus <dzickus@redhat.com>, Ingo Molnar <mingo@elte.hu>,
"H. Peter Anvin" <hpa@zytor.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Andi Kleen <andi@firstfloor.org>
Subject: Re: [PATCH -v2 4/7] x86, NMI, Rewrite NMI handler
Date: Tue, 28 Sep 2010 16:59:54 +0200 [thread overview]
Message-ID: <20100928145953.GC13563@erda.amd.com> (raw)
In-Reply-To: <1285635832.20791.119.camel@yhuang-dev>
On 27.09.10 21:03:52, Huang Ying wrote:
> Use priority to enforce the order has some issues except what Don
> pointed out (two registers for two call in chain):
>
> - Almost all direct call in default_do_nmi() must be turned into
> notifier_block. I know this is what you want. But I am not a big fan of
> notifier chain :)
>
> - This makes order of notifier call more implicitly. And I think the
> order is important for NMI handler to work properly.
>
> - In your scheme, both die_val (DIE_NMI or DIE_NMI_UNKNOWN) and priority
> are used to determine the order of call. This makes code more complex
> and no additional benefit.
>
> So I think it is better to use different die_val to determine the order,
> and insert some direct call between them.
Huang,
registering a notifier is the only clean way to add an NMI handler.
Modifying the NMI control flow in traps.c with global flags is not the
right approach. Currently, execution order depends on die_val, this is
not obvious when reading the code and we all were wondering in the
beginning why there was DIE_NMI, DIE_NMI_IPI and DIE_NMI_UNKNOWN, etc.
So, better we say instead, this is the notifier function with that
priority, add it to the call chain. With priorities we are able to
clearly specify the execution order even more fine grained than
now. And, code in traps.c will become fairly easy. Also, we don't need
two notifiers, because there is no need for different priorities
then. Give me one use case, I don't know of any.
And the setup of a notifier is not that much overhead or complex, sure
we need to change the code, but actually this the work to be done to
clean it up.
-Robert
--
Advanced Micro Devices, Inc.
Operating System Research Center
next prev parent reply other threads:[~2010-09-28 15:02 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-27 0:57 [PATCH -v2 1/7] x86, NMI, Add symbol definition for NMI magic constants Huang Ying
2010-09-27 0:57 ` [PATCH -v2 2/7] x86, NMI, Add touch_nmi_watchdog to io_check_error delay Huang Ying
2010-09-27 0:57 ` [PATCH -v2 3/7] x86, NMI, Rename memory parity error to PCI SERR error Huang Ying
2010-09-27 8:01 ` Robert Richter
2010-09-27 8:39 ` Huang Ying
2010-09-27 9:00 ` Robert Richter
2010-09-27 15:33 ` Don Zickus
2010-09-27 16:45 ` Robert Richter
2010-09-27 17:50 ` Don Zickus
2010-09-28 1:33 ` Huang Ying
2010-09-28 14:29 ` Robert Richter
2010-09-29 7:56 ` huang ying
2010-09-28 15:38 ` Don Zickus
2010-09-28 1:22 ` Huang Ying
2010-09-27 0:57 ` [PATCH -v2 4/7] x86, NMI, Rewrite NMI handler Huang Ying
2010-09-27 9:41 ` Robert Richter
2010-09-27 12:39 ` huang ying
2010-09-27 13:25 ` Robert Richter
2010-09-27 15:29 ` Don Zickus
2010-09-27 17:40 ` Robert Richter
2010-09-27 19:14 ` Don Zickus
2010-09-27 22:35 ` Robert Richter
2010-09-28 1:03 ` Huang Ying
2010-09-28 14:59 ` Robert Richter [this message]
2010-09-29 7:54 ` huang ying
2010-09-27 0:57 ` [PATCH -v2 5/7] Make NMI reason io port (0x61) can be processed on any CPU Huang Ying
2010-09-27 0:57 ` [PATCH -v2 6/7] x86, NMI, Add support to notify hardware error with unknown NMI Huang Ying
2010-09-27 10:09 ` Robert Richter
2010-09-27 12:47 ` huang ying
2010-09-27 13:38 ` Robert Richter
2010-09-27 15:20 ` Don Zickus
2010-09-28 0:36 ` Huang Ying
2010-09-28 15:32 ` Don Zickus
2010-09-29 8:17 ` huang ying
2010-09-30 4:36 ` Don Zickus
2010-09-30 4:57 ` Huang Ying
2010-09-30 8:38 ` Robert Richter
2010-09-30 9:36 ` huang ying
2010-09-30 9:51 ` Andi Kleen
2010-10-01 20:00 ` Maciej W. Rozycki
2010-09-30 8:25 ` Andi Kleen
2010-09-28 1:19 ` Huang Ying
2010-09-28 15:27 ` Robert Richter
2010-09-29 8:07 ` huang ying
2010-09-27 15:38 ` Don Zickus
2010-09-28 1:54 ` Huang Ying
2010-09-27 0:57 ` [PATCH -v2 7/7] x86, NMI, Remove do_nmi_callback logic Huang Ying
2010-09-27 10:44 ` Robert Richter
2010-09-27 12:56 ` huang ying
2010-09-27 13:43 ` Robert Richter
2010-09-27 15:16 ` Don Zickus
2010-09-27 16:58 ` Robert Richter
2010-09-28 1:41 ` Huang Ying
2010-09-28 15:16 ` Robert Richter
2010-09-28 15:21 ` Don Zickus
2010-09-28 0:28 ` Huang Ying
2010-09-28 15:19 ` Don Zickus
2010-09-29 6:55 ` huang ying
2010-09-30 4:04 ` Don Zickus
2010-09-30 5:21 ` Huang Ying
2010-09-30 8:24 ` Andi Kleen
2010-09-30 8:23 ` Robert Richter
2010-09-27 10:50 ` [PATCH -v2 1/7] x86, NMI, Add symbol definition for NMI magic constants Robert Richter
2010-09-27 15:29 ` Don Zickus
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=20100928145953.GC13563@erda.amd.com \
--to=robert.richter@amd.com \
--cc=andi@firstfloor.org \
--cc=dzickus@redhat.com \
--cc=hpa@zytor.com \
--cc=huang.ying.caritas@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=ying.huang@intel.com \
/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