From: Ashok Raj <ashok.raj@intel.com>
To: Andi Kleen <ak@muc.de>
Cc: Ashok Raj <ashok.raj@intel.com>, Andrew Morton <akpm@osdl.org>,
zwane@arm.linux.org.uk, linux-kernel@vger.kernel.org
Subject: Re: [patch 5/8] x86_64:Dont do broadcast IPIs when hotplug is enabled in flat mode.
Date: Thu, 4 Aug 2005 10:27:12 -0700 [thread overview]
Message-ID: <20050804102712.A16102@unix-os.sc.intel.com> (raw)
In-Reply-To: <20050804105107.GD97893@muc.de>; from ak@muc.de on Thu, Aug 04, 2005 at 12:51:07PM +0200
On Thu, Aug 04, 2005 at 12:51:07PM +0200, Andi Kleen wrote:
> > static void flat_send_IPI_allbutself(int vector)
> > {
> > +#ifndef CONFIG_HOTPLUG_CPU
> > if (((num_online_cpus()) - 1) >= 1)
> > __send_IPI_shortcut(APIC_DEST_ALLBUT, vector,APIC_DEST_LOGICAL);
> > +#else
> > + cpumask_t allbutme = cpu_online_map;
> > + int me = get_cpu(); /* Ensure we are not preempted when we clear */
> > + cpu_clear(me, allbutme);
> > + flat_send_IPI_mask(allbutme, vector);
> > + put_cpu();
>
> This still needs the num_online_cpus()s check.
>
> -Andi
Modified patch attached.
Andrew: the filename in your -mm queue is below, with the attached
patch.
x86_64dont-do-broadcast-ipis-when-hotplug-is-enabled-in-flat-mode.patch
--
Cheers,
Ashok Raj
- Open Source Technology Center
Note: Recent introduction of physflat mode for x86_64 inadvertently deleted
the use of non-shortcut version of routines breaking CPU hotplug. The option
to select this via cmdline also is deleted with the physflat patch, hence
directly placing this code under CONFIG_HOTPLUG_CPU.
We dont want to use broadcast mode IPI's when hotplug is enabled. This causes
bad effects in send IPI to a cpu that is offline which can trip when the
cpu is in the process of being kicked alive.
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
-------------------------------------------------------
arch/x86_64/kernel/genapic_flat.c | 10 ++++++++++
1 files changed, 10 insertions(+)
Index: linux-2.6.13-rc4-mm1/arch/x86_64/kernel/genapic_flat.c
===================================================================
--- linux-2.6.13-rc4-mm1.orig/arch/x86_64/kernel/genapic_flat.c
+++ linux-2.6.13-rc4-mm1/arch/x86_64/kernel/genapic_flat.c
@@ -78,8 +78,18 @@ static void flat_send_IPI_mask(cpumask_t
static void flat_send_IPI_allbutself(int vector)
{
+#ifndef CONFIG_HOTPLUG_CPU
if (((num_online_cpus()) - 1) >= 1)
__send_IPI_shortcut(APIC_DEST_ALLBUT, vector,APIC_DEST_LOGICAL);
+#else
+ cpumask_t allbutme = cpu_online_map;
+ int me = get_cpu(); /* Ensure we are not preempted when we clear */
+ cpu_clear(me, allbutme);
+
+ if (!cpus_empty(allbutme))
+ flat_send_IPI_mask(allbutme, vector);
+ put_cpu();
+#endif
}
static void flat_send_IPI_all(int vector)
next prev parent reply other threads:[~2005-08-04 17:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-01 20:20 [patch 0/8] Updated patches for x86_64 Ashok Raj
2005-08-01 20:20 ` [patch 1/8] x86_64: Reintroduce clustered_apic_check() " Ashok Raj
2005-08-01 22:36 ` Ashok Raj
2005-08-01 20:20 ` [patch 2/8] x86_64: create sysfs entries for cpu only for present cpus Ashok Raj
2005-08-04 10:37 ` Andi Kleen
2005-08-01 20:20 ` [patch 3/8] x86_64:Dont call enforce_max_cpus when hotplug is enabled Ashok Raj
2005-08-04 10:41 ` Andi Kleen
2005-08-04 16:28 ` Ashok Raj
2005-08-01 20:20 ` [patch 4/8] x86_64:Fix cluster mode send_IPI_allbutself to use get_cpu()/put_cpu() Ashok Raj
2005-08-04 10:43 ` Andi Kleen
2005-08-04 16:33 ` Ashok Raj
2005-08-01 20:20 ` [patch 5/8] x86_64:Dont do broadcast IPIs when hotplug is enabled in flat mode Ashok Raj
2005-08-04 10:51 ` Andi Kleen
2005-08-04 16:36 ` Ashok Raj
2005-08-04 17:27 ` Ashok Raj [this message]
2005-08-01 20:20 ` [patch 6/8] x86_64:Dont use Lowest Priority when using physical mode Ashok Raj
2005-08-01 20:20 ` [patch 7/8] x86_64:Use common functions in cluster and physflat mode Ashok Raj
2005-08-01 20:20 ` [patch 8/8] x86_64: Choose physflat for AMD systems only when >8 CPUS Ashok Raj
2005-08-04 10:54 ` 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=20050804102712.A16102@unix-os.sc.intel.com \
--to=ashok.raj@intel.com \
--cc=ak@muc.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=zwane@arm.linux.org.uk \
/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
Powered by JetHome