Re: [Linux-ia64] [patch] logical CPU numbering

Martin Hicks
2003-04-03T18:31:03Z

On Thu, Mar 20, 2003 at 02:03:57PM -0500, Martin Hicks wrote:
>
> Hello,
>
> If a CPU fails to start during smp_boot_cpus(), then the logical CPU
> numbering gets will have a "hole". Using the number of booted CPU's
> instead of the loop index will correct this.
>
> This patch is against 2.4.21-pre5.

This patch should be applied. I finally got around to doing some more
testing with it. If a CPU fails to start, currently we get messages
like the following for subsequent CPU's:

CPU 17: nasid 18, slice 0, cnode 9
CPU 17: base freq 0.000MHz, ITC ratio\x10/2, ITC freq\x1000.000MHz
Calibrating delay loop... 1494.72 BogoMIPS
phys CPU#17 (0x12) not responding - cannot use it. <<-BOGUS

The patch below fixes this problem. This is the same patch as before,
reposted just to make things easier. It is against
2.4.21-pre5-ia64-0303012.

Thanks,
mh

--
Wild Open Source Inc. mort@wildopensource.com

--- linux-2.4.21-pre5-ia64-030312.pristine/arch/ia64/kernel/smpboot.c Sun Mar 16 10:18:53 2003
+++ linux-2.4.21-pre5-ia64-030312/arch/ia64/kernel/smpboot.c Thu Mar 20 10:47:07 2003
@@ -522,7 +522,7 @@
/*
* Make sure we unmap all failed CPUs
*/
- if (ia64_cpu_to_sapicid[cpu] = -1)
+ if (ia64_cpu_to_sapicid[cpucount] = -1)
printk("phys CPU#%d not responding - cannot use it.\n", cpu);
}