Messages in this thread Patch in this message | | | Subject | [RFC] NR_CPUS=8 on a 32 cpu box | From | john stultz <> | Date | 04 Sep 2003 18:27:00 -0700 |
| |
Andrew, All,
So, I found the cause of that memory corruption I mentioned last night. I was booting on the 16x w/ HT and I hadn't taken note that NR_CPUS now defaults to 8. Whoops. Ends up there isn't any bounds checking when bringing up the cpus, thus we overflow bios_cpu_apicid[].
Here's a quick patch that checks if num_processors has hit NR_CPUS. Seems to fix it for me.
Let me know if you have any comments or suggestions.
thanks -john
===== arch/i386/kernel/mpparse.c 1.49 vs edited ===== --- 1.49/arch/i386/kernel/mpparse.c Sun Aug 31 16:14:25 2003 +++ edited/arch/i386/kernel/mpparse.c Thu Sep 4 18:07:15 2003 @@ -167,6 +167,10 @@ boot_cpu_logical_apicid = apicid; } + if (num_processors > NR_CPUS){ + printk(KERN_WARNING "NR_CPUS limit of %i reached. Cannot boot CPU(apicid 0x%d).\n", NR_CPUS, m->mpc_apicid); + return; + } num_processors++; if (MAX_APICS - m->mpc_apicid <= 0) {
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |