From: John Villalovos <jvillalo@redhat.com> Date: Fri, 11 Jul 2008 10:37:44 -0400 Subject: [acpi] disable lapic timer on C2 states Message-id: 20080711143744.GB12519@linuxjohn.usersys.redhat.com O-Subject: [Patch RHEL 5.3] BZ 453166 Tylersburg HEDT cannot boot regular 2.6.18-92 kernel without noapic Bugzilla: 438409 RH-Acked-by: Matthew Garrett <mjg@redhat.com> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=453166 This is upstream in commit: 169a0abbe32813af4904cc1605c0f7ea0534f77b Description: This patch fixes an issue with the Tylersburg-HEDT (Nehalem) system hanging at boot. When a platform exports a C2 state on Nehalem, RHEL5 will hang without this patch. No platform or processor workaround for this. This patch disables the use of Local APIC timer on platforms that support C2 state, as APIC timer is not guaranteed to run in anything other than C0 and C1. This change is already in upstream and needed for Nehalem. Tested by my using the 2.6.18-92 x86_64 kernel. diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 90a2aaf..a80065f 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -906,10 +906,7 @@ static int acpi_processor_power_verify(struct acpi_processor *pr) case ACPI_STATE_C2: acpi_processor_power_verify_c2(cx); #ifdef ARCH_APICTIMER_STOPS_ON_C3 - /* Some AMD systems fake C3 as C2, but still - have timer troubles */ - if (cx->valid && - boot_cpu_data.x86_vendor == X86_VENDOR_AMD) + if (cx->valid) timer_broadcast++; #endif break;