From: Andi Kleen <ak@linux.intel.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>,
linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: x86/mce merge, integration hickup + crash, design thoughts
Date: Tue, 30 Dec 2008 10:13:35 +0100 [thread overview]
Message-ID: <4959E63F.3070405@linux.intel.com> (raw)
In-Reply-To: <20081230065008.GC30975@elte.hu>
> this reminds me, i dont particularly like the way you added a
> self-interrupt:
>
> + __send_IPI_shortcut(APIC_DEST_SELF, MCE_SELF_VECTOR, 0);
>
> IPI self-sends are generally more fragile than task-flag based methods,
> and they also waste IRQ vector real-estate.
I believe the self IPI method is superior than going through the idle
notifiers using TIF flags as it was done before.
There's no guarantee idle (or other tif checkers like syscall return)
runs anytime soon after the event. They do usually, but it's not guaranteed.
And at least in the tolerant==3 case it's pretty important
to run this code ASAP.
It also is slightly cleaner code IMHO and better expresses the semantics
(execute as soon as the interrupts are on again) the code wants.
Admittedly temporarily it merging slightly harder, but that should
be only a temporary issue.
The original reason I did it this way was because 32bit didn't have
them (but I think that's obsolete now, 32bit needs them now too
for the idle power management code)
The other rationale was also that with everything moving to per CPU
interrupt spaces vectors are not as precious as they used to be, so
it's ok to use more.
And I'm not aware of a fundamental unreliability of self IPI.
After all the IRQ migration code already relies on it.
-Andi
next prev parent reply other threads:[~2008-12-30 9:13 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-27 15:50 x86/mce merge, integration hickup + crash, design thoughts Ingo Molnar
2008-12-27 22:51 ` Ingo Molnar
2008-12-29 21:41 ` Andi Kleen
2009-01-13 17:45 ` Ingo Molnar
2009-01-13 18:57 ` Tim Hockin
2009-01-14 9:29 ` Andi Kleen
2009-01-14 16:18 ` Tim Hockin
2009-01-14 18:05 ` Andi Kleen
2009-01-14 19:32 ` Tim Hockin
2009-01-15 22:56 ` Andi Kleen
2009-01-15 23:39 ` Tim Hockin
2009-01-14 2:02 ` Huang Ying
2008-12-30 21:13 ` Russ Anderson
2008-12-31 13:32 ` Andi Kleen
2008-12-31 18:09 ` Russ Anderson
2008-12-29 21:51 ` Andi Kleen
2008-12-30 6:50 ` Ingo Molnar
2008-12-30 9:13 ` Andi Kleen [this message]
2008-12-30 21:29 ` Russ Anderson
2009-01-12 22:02 ` Tim Hockin
2009-01-13 5:02 ` 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=4959E63F.3070405@linux.intel.com \
--to=ak@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--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