Skip to contentSkip to conversation

i386: Panic the system when a NUMA kernel doesn't run on IBM NUMA

PATCH In review Andi Kleen 3 participants 5 messages Jun 24, 2006

lore
Share & tools
lore

Andi Kleen

author
#0 lore raw

PATCH 20/82 i386: Panic the system when a NUMA kernel doesn't run on IBM NUMA

It has been broken forever anywhere else and is not too useful anyways so best to disable it.

---
 arch/i386/Kconfig       |    3 +++
 arch/i386/kernel/srat.c |    8 ++++++++
 2 files changed, 11 insertions(+)
arch/i386/kernel/srat.c +8 -0
Index: linux/arch/i386/kernel/srat.c
===================================================================
@@ -312,6 +312,14 @@ int __init get_memcfg_from_srat(void)
 	int tables = 0;
 	int i = 0;
 
+	extern int use_cyclone;
+	if (use_cyclone == 0) {
+		/* Make sure user sees something */
+		static const char s[] __initdata = "Not an IBM x440/NUMAQ. Don't use i386 CONFIG_NUMA anywhere else.";
+		early_printk(s);
+		panic(s);
+	}
+
 	if (ACPI_FAILURE(acpi_find_root_pointer(ACPI_PHYSICAL_ADDRESSING,
 						rsdp_address))) {
 		printk("%s: System description tables not found\n",
arch/i386/Kconfig +3 -0
Index: linux/arch/i386/Kconfig
===================================================================
@@ -523,6 +523,9 @@ config NUMA
 	depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
 	default n if X86_PC
 	default y if (X86_NUMAQ || X86_SUMMIT)
+	help
+		NUMA support. Note this only works on IBM x440 or IBM NUMAQ.
+		Don't try to use it anywhere else.
 
 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
 	depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
#1 lore raw

arch/i386/kernel/srat.c int __init get_memcfg_from_srat(void) · line 321

Quoted 7 lines · Andi Kleen
arch/i386/kernel/srat.c +7 -0
+	extern int use_cyclone;
+	if (use_cyclone == 0) {
+		/* Make sure user sees something */
+		static const char s[] __initdata = "Not an IBM x440/NUMAQ. Don't use i386 CONFIG_NUMA anywhere else.";
+		early_printk(s);
+		panic(s);
+	}

non-IBM Machines do still boot with that enabled though don't they? Turning previously working configurations into panic()'s seems a bit odd, even with a warning.

Dave

Signature · 1 line
http://www.codemonkey.org.uk
author
#2 lore raw
Quoted 12 lines · Dave Jones

arch/i386/kernel/srat.c int __init get_memcfg_from_srat(void) · line 321

Quoted 7 lines · Andi Kleen
arch/i386/kernel/srat.c +7 -0
+	extern int use_cyclone;
+	if (use_cyclone == 0) {
+		/* Make sure user sees something */
+		static const char s[] __initdata = "Not an IBM x440/NUMAQ. Don't use i386 CONFIG_NUMA anywhere else.";
+		early_printk(s);
+		panic(s);
+	}

non-IBM Machines do still boot with that enabled though don't they?

No they don't - as they likely didn't do before. e.g. Opterons generally break and that brings the point across clearer.

The rationale is that CONFIG_NUMA is very rarely used on i386 (even on summit) and always does bitrot quickly. It also doesn't work at all on a wide range of machines.

I'm sure someone will bring up now an example where their non Summit machine booted with CONFIG_NUMA, but they were just extremly lucky and unlikely to be for very long.

-Andi

#3 lore raw
Quoted 15 lines · Andi Kleen
Quoted 11 lines · Dave Jones

arch/i386/kernel/srat.c int __init get_memcfg_from_srat(void) · line 321

Quoted 7 lines · Andi Kleen
arch/i386/kernel/srat.c +7 -0
+  extern int use_cyclone;
+  if (use_cyclone == 0) {
+          /* Make sure user sees something */
+          static const char s[] __initdata = "Not an IBM x440/NUMAQ. Don't use i386 CONFIG_NUMA anywhere else.";
+          early_printk(s);
+          panic(s);
+  }
Quoted 1 line

non-IBM Machines do still boot with that enabled though don't they?

Quoted 6 lines

No they don't - as they likely didn't do before. e.g. Opterons generally break and that brings the point across clearer.

The rationale is that CONFIG_NUMA is very rarely used on i386 (even on summit) and always does bitrot quickly. It also doesn't work at all on a wide range of machines.

I agree that i386 CONFIG_NUMA is only ment to boot on small subset of hw but there is litte motivation to boot a numa kernel on a non-numa box. I am supprised that no one has enabled i386 AMD NUMA (the one numa box that regular people have access to).

Quoted 3 lines

I'm sure someone will bring up now an example where their non Summit machine booted with CONFIG_NUMA, but they were just extremly lucky and unlikely to be for very long.

Current Summit HW (x460) dosen't use/have a cyclone. There are patches submitted to this list to support it's i386 NUMA boot.

Thanks,
Keith

author
#4 lore raw
Quoted 6 lines

I agree that i386 CONFIG_NUMA is only ment to boot on small subset of hw but there is litte motivation to boot a numa kernel on a non-numa box. I am supprised that no one has enabled i386 AMD NUMA (the one numa box that regular people have access to).

I never bothered because 32bit NUMA with lowmem only on node 0 isn't very useful. Using it with 64bit makes much more sense.

Quoted 6 lines
Quoted 3 lines

I'm sure someone will bring up now an example where their non Summit machine booted with CONFIG_NUMA, but they were just extremly lucky and unlikely to be for very long.

Current Summit HW (x460) dosen't use/have a cyclone. There are patches submitted to this list to support it's i386 NUMA boot.

Hmm, that's a good point. When the detection doesn't work reliable it's no good.

Ok, Linus please don't apply that patch for now then.

-Andi