[PATCH] skip sync_arb_IDs on P4/Xeon

From: Martin Wilck
Date: Mon Oct 04 2004 - 10:50:46 EST


Hi,

I recently came across an Intel statement saying that the "INIT Level deassert" IPI used by sync_arb_IDs() (arch/i386/kernel/apic.c) should not be used on P4 and Xeon which don't have APIC bus arbitration anyway.

See Intel IA32 architecture software developers manual vol. 3, 8.6.1 (p.8-23), 8.7 (p. 8.31).

The patch below skips the unsupported IPI on P4/Xeon.

The same thing should probably be done for x86_64.

Regards,
Martin

--
Martin Wilck Phone: +49 5251 8 15113
Fujitsu Siemens Computers Fax: +49 5251 8 20409
Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@xxxxxxxxxxxxxxxxxxx
D-33106 Paderborn http://www.fujitsu-siemens.com/primergy

--- arch/i386/kernel/apic.c.orig 2004-10-04 14:54:27.000000000 +0200
+++ arch/i386/kernel/apic.c 2004-10-04 14:56:20.000000000 +0200
@@ -269,6 +269,9 @@ int __init verify_local_APIC(void)

void __init sync_Arb_IDs(void)
{
+ /* Unsupported on P4 - see Intel Dev. Manual Vol. 3, Ch. 8.6.1 */
+ if (boot_cpu_data.x86 == 15)
+ return;
/*
* Wait for idle.
*/