Re: [BUG] i386 2.6.18 cpu_up: attempt to bring up CPU 4 failed :kernel BUG at mm/slab.c:2698!

From: keith mannthey
Date: Fri Sep 22 2006 - 15:44:42 EST


On Thu, 2006-09-21 at 21:09 -0700, David Rientjes wrote:
> On Thu, 21 Sep 2006, Andrew Morton wrote:

Well I think there is 3 bug total exposed my unique situation. I think
all 3 issues are generic mainline bugs that have been around for
awhile.

1. SRAT not being mapped (patch submitted to fix boot_ioremap code)
This caused cpus to fail to be borough on line and panicked the box.

2. The panic is bad. I have so far tested the patch David
submitted.... It allowed the cpu_up calls to fail without panicking the
box. Andrew do you want me to test yours or ???

3. Flat mode i386 numa on a real numa system is broken. If there is
only 1 node in the system cpus should think they are apart of some other
node. Patch below.



If cases where a real numa system boots the Flat numa option make sure
the cpus don't claim to be apart on a non-existent node.


Signed-off-by: Keith Mannthey <kmannth@xxxxxxxxxx>

--- linux-2.6.18/arch/i386/kernel/smpboot.c 2006-09-19
20:42:06.000000000 -0700
+++ linux-2.6.18-workes/arch/i386/kernel/smpboot.c 2006-09-21
21:57:55.000000000 -0700
@@ -642,9 +642,13 @@
{
int cpu = smp_processor_id();
int apicid = logical_smp_processor_id();
-
+ int node = apicid_to_node(apicid);
+
+ if (!node_online(node))
+ node = first_online_node;
+
cpu_2_logical_apicid[cpu] = apicid;
- map_cpu_to_node(cpu, apicid_to_node(apicid));
+ map_cpu_to_node(cpu, node);
}

static void unmap_cpu_to_logical_apicid(int cpu)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/