public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Double x86 initialise fix.
@ 2002-10-26 12:42 davej
  2002-10-26 13:56 ` Alan Cox
  0 siblings, 1 reply; 9+ messages in thread
From: davej @ 2002-10-26 12:42 UTC (permalink / raw)
  To: linux-kernel; +Cc: alan

For many moons, we've been executing identify_cpu()
on the boot processor twice on SMP kernels.
This is harmless, but has a few downsides..
- Extra cruft in bootlog/dmesg
- Spawns one too many timers for the mcheck handler
- possibly other wasteful things..

This seems to do the right thing here..

diff -urpN --exclude-from=/home/davej/.exclude bk-linus/arch/i386/kernel/smpboot.c linux-2.5/arch/i386/kernel/smpboot.c
--- bk-linus/arch/i386/kernel/smpboot.c	2002-10-20 20:21:24.000000000 -0100
+++ linux-2.5/arch/i386/kernel/smpboot.c	2002-10-25 15:39:26.000000000 -0100
@@ -118,7 +118,8 @@ static void __init smp_store_cpu_info(in
 	struct cpuinfo_x86 *c = cpu_data + id;
 
 	*c = boot_cpu_data;
-	identify_cpu(c);
+	if (id!=0)
+		identify_cpu(c);
 	/*
 	 * Mask B, Pentium, but not Pentium MMX
 	 */

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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 13:56 ` Alan Cox
@ 2002-10-26 13:49   ` Dave Jones
  2002-10-26 13:57     ` Alan Cox
  2002-10-26 14:08     ` Eric W. Biederman
  0 siblings, 2 replies; 9+ messages in thread
From: Dave Jones @ 2002-10-26 13:49 UTC (permalink / raw)
  To: Alan Cox; +Cc: Linux Kernel Mailing List, alan

On Sat, Oct 26, 2002 at 02:56:20PM +0100, Alan Cox wrote:
 > > For many moons, we've been executing identify_cpu()
 > > on the boot processor twice on SMP kernels.
 > > This is harmless, but has a few downsides..
 > > - Extra cruft in bootlog/dmesg
 > > - Spawns one too many timers for the mcheck handler
 > > - possibly other wasteful things..
 > > 
 > > This seems to do the right thing here..

Isn't this always the case on x86 ?
/me waits to hear gory details of some IBM monster.

		Dave

-- 
| Dave Jones.        http://www.codemonkey.org.uk

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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 12:42 [PATCH] Double x86 initialise fix davej
@ 2002-10-26 13:56 ` Alan Cox
  2002-10-26 13:49   ` Dave Jones
  0 siblings, 1 reply; 9+ messages in thread
From: Alan Cox @ 2002-10-26 13:56 UTC (permalink / raw)
  To: davej; +Cc: Linux Kernel Mailing List, alan

On Sat, 2002-10-26 at 13:42, davej@codemonkey.org.uk wrote:
> For many moons, we've been executing identify_cpu()
> on the boot processor twice on SMP kernels.
> This is harmless, but has a few downsides..
> - Extra cruft in bootlog/dmesg
> - Spawns one too many timers for the mcheck handler
> - possibly other wasteful things..
> 
> This seems to do the right thing here..

How do you know the boot CPU is CPU#0


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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 13:49   ` Dave Jones
@ 2002-10-26 13:57     ` Alan Cox
  2002-10-26 15:00       ` Martin J. Bligh
  2002-10-26 14:08     ` Eric W. Biederman
  1 sibling, 1 reply; 9+ messages in thread
From: Alan Cox @ 2002-10-26 13:57 UTC (permalink / raw)
  To: Dave Jones; +Cc: Alan Cox, Linux Kernel Mailing List, alan

> Isn't this always the case on x86 ?
> /me waits to hear gory details of some IBM monster.

It isnt. The boot CPU may be any number. In addition you can strap dual
pentium boxes to arbitrate for who is boot cpu (this is used for fault
tolerance).


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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 13:49   ` Dave Jones
  2002-10-26 13:57     ` Alan Cox
@ 2002-10-26 14:08     ` Eric W. Biederman
  1 sibling, 0 replies; 9+ messages in thread
From: Eric W. Biederman @ 2002-10-26 14:08 UTC (permalink / raw)
  To: Dave Jones; +Cc: Alan Cox, Linux Kernel Mailing List, alan

Dave Jones <davej@codemonkey.org.uk> writes:

> On Sat, Oct 26, 2002 at 02:56:20PM +0100, Alan Cox wrote:
>  > > For many moons, we've been executing identify_cpu()
>  > > on the boot processor twice on SMP kernels.
>  > > This is harmless, but has a few downsides..
>  > > - Extra cruft in bootlog/dmesg
>  > > - Spawns one too many timers for the mcheck handler
>  > > - possibly other wasteful things..
>  > > 
>  > > This seems to do the right thing here..
> 
> Isn't this always the case on x86 ?
> /me waits to hear gory details of some IBM monster.

If it is the logical cpu id yes, then id 0 is always the bootstrap
cpu.

For apic id #0 to not be the bootstrap cpu you don't need an IBM
monster, there are several SMP machines with that property.

Eric

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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 13:57     ` Alan Cox
@ 2002-10-26 15:00       ` Martin J. Bligh
  2002-10-26 15:03         ` Martin J. Bligh
  2002-10-26 15:46         ` Alan Cox
  0 siblings, 2 replies; 9+ messages in thread
From: Martin J. Bligh @ 2002-10-26 15:00 UTC (permalink / raw)
  To: Alan Cox, Dave Jones; +Cc: Alan Cox, Linux Kernel Mailing List

>> Isn't this always the case on x86 ?
>> /me waits to hear gory details of some IBM monster.
> 
> It isnt. The boot CPU may be any number. In addition you can strap dual
> pentium boxes to arbitrate for who is boot cpu (this is used for fault
> tolerance).

Eh? I don't understand this, and I think Dave is right for all the
IBM monsters I know of ;-) The *apicid* may not be 0 but the CPU
numbers are dynamically assigned as we boot, so the boot CPU will
always get 0, surely?

M.


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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 15:00       ` Martin J. Bligh
@ 2002-10-26 15:03         ` Martin J. Bligh
  2002-10-26 15:46         ` Alan Cox
  1 sibling, 0 replies; 9+ messages in thread
From: Martin J. Bligh @ 2002-10-26 15:03 UTC (permalink / raw)
  To: Alan Cox, Dave Jones; +Cc: Alan Cox, Linux Kernel Mailing List

>>> Isn't this always the case on x86 ?
>>> /me waits to hear gory details of some IBM monster.
>> 
>> It isnt. The boot CPU may be any number. In addition you can strap dual
>> pentium boxes to arbitrate for who is boot cpu (this is used for fault
>> tolerance).
> 
> Eh? I don't understand this, and I think Dave is right for all the
> IBM monsters I know of ;-) The *apicid* may not be 0 but the CPU
> numbers are dynamically assigned as we boot, so the boot CPU will
> always get 0, surely?

Indeed cscope indicates these are acutally hardcoded into the calls:

1 smpboot.c smp_callin    418 smp_store_cpu_info(cpuid);
2 smpboot.c smp_boot_cpus 989 smp_store_cpu_info(0);

The only thing that does smp_callin is a secondary ... so the boot
CPU has this hardcoded to 0 ... I think Dave's fine.

M.


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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 15:00       ` Martin J. Bligh
  2002-10-26 15:03         ` Martin J. Bligh
@ 2002-10-26 15:46         ` Alan Cox
  2002-10-28 19:57           ` Zwane Mwaikambo
  1 sibling, 1 reply; 9+ messages in thread
From: Alan Cox @ 2002-10-26 15:46 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: Alan Cox, Dave Jones, Linux Kernel Mailing List

On Sat, 2002-10-26 at 16:00, Martin J. Bligh wrote:
> >> Isn't this always the case on x86 ?
> >> /me waits to hear gory details of some IBM monster.
> > 
> > It isnt. The boot CPU may be any number. In addition you can strap dual
> > pentium boxes to arbitrate for who is boot cpu (this is used for fault
> > tolerance).
> 
> Eh? I don't understand this, and I think Dave is right for all the
> IBM monsters I know of ;-) The *apicid* may not be 0 but the CPU
> numbers are dynamically assigned as we boot, so the boot CPU will
> always get 0, surely?

Ok its a logical ID - so yes


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

* Re: [PATCH] Double x86 initialise fix.
  2002-10-26 15:46         ` Alan Cox
@ 2002-10-28 19:57           ` Zwane Mwaikambo
  0 siblings, 0 replies; 9+ messages in thread
From: Zwane Mwaikambo @ 2002-10-28 19:57 UTC (permalink / raw)
  To: Alan Cox; +Cc: Martin J. Bligh, Alan Cox, Dave Jones, Linux Kernel Mailing List

On 26 Oct 2002, Alan Cox wrote:

> > Eh? I don't understand this, and I think Dave is right for all the
> > IBM monsters I know of ;-) The *apicid* may not be 0 but the CPU
> > numbers are dynamically assigned as we boot, so the boot CPU will
> > always get 0, surely?
> 
> Ok its a logical ID - so yes

<pedantic> kernel logical ID ;)  </pedantic>

-- 
function.linuxpower.ca



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

end of thread, other threads:[~2002-10-28 19:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-26 12:42 [PATCH] Double x86 initialise fix davej
2002-10-26 13:56 ` Alan Cox
2002-10-26 13:49   ` Dave Jones
2002-10-26 13:57     ` Alan Cox
2002-10-26 15:00       ` Martin J. Bligh
2002-10-26 15:03         ` Martin J. Bligh
2002-10-26 15:46         ` Alan Cox
2002-10-28 19:57           ` Zwane Mwaikambo
2002-10-26 14:08     ` Eric W. Biederman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox