LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
@ 2008-01-28  2:28 Yinghai Lu
  2008-01-28 12:40 ` Ingo Molnar
  0 siblings, 1 reply; 6+ messages in thread
From: Yinghai Lu @ 2008-01-28  2:28 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Linux Kernel Mailing List

[PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu

in init/main.c boot_cpu_init() does that before

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>

Index: linux-2.6/arch/x86/kernel/smpboot_64.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/smpboot_64.c
+++ linux-2.6/arch/x86/kernel/smpboot_64.c
@@ -921,7 +921,7 @@ void __init smp_prepare_cpus(unsigned in
 void __init smp_prepare_boot_cpu(void)
 {
 	int me = smp_processor_id();
-	cpu_set(me, cpu_online_map);
+	/* already set me in cpu_online_map in boot_cpu_init() */
 	cpu_set(me, cpu_callout_map);
 	per_cpu(cpu_state, me) = CPU_ONLINE;
 }

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
  2008-01-28  2:28 [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu Yinghai Lu
@ 2008-01-28 12:40 ` Ingo Molnar
  0 siblings, 0 replies; 6+ messages in thread
From: Ingo Molnar @ 2008-01-28 12:40 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Linux Kernel Mailing List


* Yinghai Lu <Yinghai.Lu@Sun.COM> wrote:

> [PATCH] x86_64: not set boot cpu in cpu_online_map at 
> smp_prepare_boot_cpu
> 
> in init/main.c boot_cpu_init() does that before

thanks, applied.

	Ingo

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
  2007-11-26 22:06   ` Yinghai Lu
@ 2007-11-26 22:36     ` Zachary Amsden
  0 siblings, 0 replies; 6+ messages in thread
From: Zachary Amsden @ 2007-11-26 22:36 UTC (permalink / raw)
  To: Yinghai.Lu; +Cc: Andrew Morton, Thomas Gleixner, LKML

On Mon, 2007-11-26 at 14:06 -0800, Yinghai Lu wrote:

> >> diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
> >> index 500670c..966d124 100644
> >> --- a/arch/x86/kernel/smpboot_64.c
> >> +++ b/arch/x86/kernel/smpboot_64.c
> >> @@ -912,7 +912,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
> >>  void __init smp_prepare_boot_cpu(void)
> >>  {
> >>  	int me = smp_processor_id();
> >> -	cpu_set(me, cpu_online_map);
> >> +	/* already set me in cpu_online_map in boot_cpu_init() */
> >>  	cpu_set(me, cpu_callout_map);
> >>  	per_cpu(cpu_state, me) = CPU_ONLINE;
> >>  }
> > 
> > 
> > This ordering can be tricky wrt CPU hotplug.  Are you sure you are not
> > breaking CPU hotplug?  AFAIK, x86_64 has that right and the 32-bit code
> > had it wrong.
> 
> 
> CPU hot plug path will call smp_prepare_boot_cpu?
> it is using __init instead of __cpuinit?

No, but moving the place where cpu is moved into online map might break
hotplug.  In any case, I don't see anything wrong with your change now
that I look closer.

Zach


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
  2007-11-26 20:57 ` Zachary Amsden
@ 2007-11-26 22:06   ` Yinghai Lu
  2007-11-26 22:36     ` Zachary Amsden
  0 siblings, 1 reply; 6+ messages in thread
From: Yinghai Lu @ 2007-11-26 22:06 UTC (permalink / raw)
  To: Zachary Amsden; +Cc: Andrew Morton, Thomas Gleixner, LKML

Zachary Amsden wrote:
> On Mon, 2007-11-26 at 00:38 -0800, Yinghai Lu wrote:
>> [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
>>
>> in init/main.c boot_cpu_init() does that before
>>
>> Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
>>
>> diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
>> index 500670c..966d124 100644
>> --- a/arch/x86/kernel/smpboot_64.c
>> +++ b/arch/x86/kernel/smpboot_64.c
>> @@ -912,7 +912,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
>>  void __init smp_prepare_boot_cpu(void)
>>  {
>>  	int me = smp_processor_id();
>> -	cpu_set(me, cpu_online_map);
>> +	/* already set me in cpu_online_map in boot_cpu_init() */
>>  	cpu_set(me, cpu_callout_map);
>>  	per_cpu(cpu_state, me) = CPU_ONLINE;
>>  }
> 
> 
> This ordering can be tricky wrt CPU hotplug.  Are you sure you are not
> breaking CPU hotplug?  AFAIK, x86_64 has that right and the 32-bit code
> had it wrong.


CPU hot plug path will call smp_prepare_boot_cpu?
it is using __init instead of __cpuinit?

YH

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
  2007-11-26  8:38 Yinghai Lu
@ 2007-11-26 20:57 ` Zachary Amsden
  2007-11-26 22:06   ` Yinghai Lu
  0 siblings, 1 reply; 6+ messages in thread
From: Zachary Amsden @ 2007-11-26 20:57 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Andrew Morton, Thomas Gleixner, LKML

On Mon, 2007-11-26 at 00:38 -0800, Yinghai Lu wrote:
> [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
> 
> in init/main.c boot_cpu_init() does that before
> 
> Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>
> 
> diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
> index 500670c..966d124 100644
> --- a/arch/x86/kernel/smpboot_64.c
> +++ b/arch/x86/kernel/smpboot_64.c
> @@ -912,7 +912,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
>  void __init smp_prepare_boot_cpu(void)
>  {
>  	int me = smp_processor_id();
> -	cpu_set(me, cpu_online_map);
> +	/* already set me in cpu_online_map in boot_cpu_init() */
>  	cpu_set(me, cpu_callout_map);
>  	per_cpu(cpu_state, me) = CPU_ONLINE;
>  }


This ordering can be tricky wrt CPU hotplug.  Are you sure you are not
breaking CPU hotplug?  AFAIK, x86_64 has that right and the 32-bit code
had it wrong.

Zach


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu
@ 2007-11-26  8:38 Yinghai Lu
  2007-11-26 20:57 ` Zachary Amsden
  0 siblings, 1 reply; 6+ messages in thread
From: Yinghai Lu @ 2007-11-26  8:38 UTC (permalink / raw)
  To: Andrew Morton, Thomas Gleixner; +Cc: LKML

[PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu

in init/main.c boot_cpu_init() does that before

Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>

diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index 500670c..966d124 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -912,7 +912,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
 void __init smp_prepare_boot_cpu(void)
 {
 	int me = smp_processor_id();
-	cpu_set(me, cpu_online_map);
+	/* already set me in cpu_online_map in boot_cpu_init() */
 	cpu_set(me, cpu_callout_map);
 	per_cpu(cpu_state, me) = CPU_ONLINE;
 }

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-01-28 12:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-28  2:28 [PATCH] x86_64: not set boot cpu in cpu_online_map at smp_prepare_boot_cpu Yinghai Lu
2008-01-28 12:40 ` Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2007-11-26  8:38 Yinghai Lu
2007-11-26 20:57 ` Zachary Amsden
2007-11-26 22:06   ` Yinghai Lu
2007-11-26 22:36     ` Zachary Amsden

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).