Messages in this thread | | | Subject | RE: [PATCH] Automatically enable bigsmp on big HP machines | Date | Thu, 5 Aug 2004 17:54:25 -0700 | From | "Pallipadi, Venkatesh" <> |
| |
Instead of handling these individually for particular systems, can't we just switch to bigsmp whenever we see more than 8 CPU in the CPU enumeration and no other subarchitecture is selected by any dmi override.
I had some patch that does soemthing like this, a while back. If you are OK with the idea, I can dig out that patch and send it.
Thanks, Venki
>-----Original Message----- >From: linux-kernel-owner@vger.kernel.org >[mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Andi Kleen >Sent: Thursday, August 05, 2004 5:39 AM >To: akpm@osdl.org >Cc: linux-kernel@vger.kernel.org >Subject: [PATCH] Automatically enable bigsmp on big HP machines > > >This enables apic=bigsmp automatically on some big HP machines >that need it. >This makes them boot without kernel parameters on a generic >arch kernel. > >Also it removes an unnecessary panic in the same area. > >-Andi > >diff -u linux-2.6.7/arch/i386/kernel/dmi_scan.c-HP >linux-2.6.7/arch/i386/kernel/dmi_scan.c >--- linux-2.6.7/arch/i386/kernel/dmi_scan.c-HP 2004-08-05 >14:00:29.325072566 +0200 >+++ linux-2.6.7/arch/i386/kernel/dmi_scan.c 2004-08-05 >14:19:57.058593500 +0200 >@@ -272,6 +272,16 @@ > } > #endif > >+static __init int hp_ht_bigsmp(struct dmi_blacklist *d) >+{ >+#ifdef CONFIG_X86_GENERICARCH >+ extern int dmi_bigsmp; >+ printk(KERN_NOTICE "%s detected: force use of >apic=bigsmp\n", d->ident); >+ dmi_bigsmp = 1; >+#endif >+ return 0; >+} >+ > /* > * Process the DMI blacklists > */ >@@ -460,6 +455,17 @@ > #endif // CONFIG_ACPI_BOOT > > #ifdef CONFIG_ACPI_PCI >+ >+ { hp_ht_bigsmp, "HP ProLiant DL760 G2", { >+ MATCH(DMI_BIOS_VENDOR, "HP"), >+ MATCH(DMI_BIOS_VERSION, "P44-"), >+ NO_MATCH, NO_MATCH }}, >+ >+ { hp_ht_bigsmp, "HP ProLiant DL740", { >+ MATCH(DMI_BIOS_VENDOR, "HP"), >+ MATCH(DMI_BIOS_VERSION, "P47-"), >+ NO_MATCH, NO_MATCH }}, >+ > /* > * Boxes that need ACPI PCI IRQ routing disabled > */ >diff -u linux-2.6.7/arch/i386/kernel/io_apic.c-HP >linux-2.6.7/arch/i386/kernel/io_apic.c >--- linux-2.6.7/arch/i386/kernel/io_apic.c-HP 2004-08-05 >14:00:29.328072077 +0200 >+++ linux-2.6.7/arch/i386/kernel/io_apic.c 2004-08-05 >14:17:49.595383418 +0200 >@@ -1714,7 +1714,7 @@ > reg_00.raw = io_apic_read(apic, 0); > spin_unlock_irqrestore(&ioapic_lock, flags); > if (reg_00.bits.ID != mp_ioapics[apic].mpc_apicid) >- panic("could not set ID!\n"); >+ printk(" could not set ID!\n"); > else > printk(" ok.\n"); > } >- >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/ > - 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/
| |