From: Andi Kleen <ak@suse.de>
To: torvalds@osdl.org, linux-kernel@vger.kernel.org
Subject: [PATCH] Readd BUG for SMP TLB IPI
Date: Wed, 9 Jul 2003 12:49:15 +0200 [thread overview]
Message-ID: <20030709124915.3d98054b.ak@suse.de> (raw)
Readd the BUG for an spurious SMP TLB IPI.
Rationale:
The condition is fatal and it's better to have a BUG than a hang.
The goto out code forgets to ack the IPI in the APIC. When the IPI would really arrive
at the wrong CPU it would immediately deadlock because the non-Acked IPI is retriggered.
Adding an ACK for this path is also no good, because then the SMP flusher would
need to detect this case and "retransmit" the IPI, otherwise it would hang too
in the loop waiting for other CPUs. But nobody has ever seen such a hang, so it's safe
to assume that all hardware guarantees it cannot happen.
-Andi
--- linux-2.5-amd64/arch/i386/kernel/smp.c~ 2003-07-09 12:42:36.000000000 +0200
+++ linux-2.5-amd64/arch/i386/kernel/smp.c 2003-07-09 12:42:36.000000000 +0200
@@ -312,15 +312,7 @@
cpu = get_cpu();
if (!test_bit(cpu, &flush_cpumask))
- goto out;
- /*
- * This was a BUG() but until someone can quote me the
- * line from the intel manual that guarantees an IPI to
- * multiple CPUs is retried _only_ on the erroring CPUs
- * its staying as a return
- *
- * BUG();
- */
+ BUG();
if (flush_mm == cpu_tlbstate[cpu].active_mm) {
if (cpu_tlbstate[cpu].state == TLBSTATE_OK) {
next reply other threads:[~2003-07-09 10:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-09 10:49 Andi Kleen [this message]
2003-07-09 11:27 ` [PATCH] Readd BUG for SMP TLB IPI Alan Cox
2003-07-09 11:41 ` Andi Kleen
2003-07-09 16:53 ` Alan Cox
2003-07-09 16:58 ` Andi Kleen
2003-07-09 17:04 ` Alan Cox
2003-07-09 17:32 ` Andi Kleen
2003-07-09 23:38 ` Alan Cox
2003-07-09 17:37 ` Compile failure 2.4.22-pre3-ac1 Midian
2003-07-09 18:10 ` Steven Cole
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=20030709124915.3d98054b.ak@suse.de \
--to=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.org \
/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