From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Wang Subject: [PATCH] acpi: Fix an incorrect code path in acpi_processor_idle() Date: Thu, 5 Apr 2012 15:39:14 +0200 Message-ID: <4F7DA082.5030503@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "xen-devel@lists.xensource.com" , Jan Beulich , Keir Fraser List-Id: xen-devel@lists.xenproject.org Hi, There seems to be an incorrect code path in acpi_processor_idle(). ACPI_STATE_C3 code path might need to be avoided when cpu tries to enter c2 but lapic_timer_c2_ok is not set. This bug affects some amd systems which have c2 state available. The XenServer 6.0 performance issue[1] should also be fixed by this patch. If it looks fine, please apply it to unstable, 4.1 and 4.0 Thanks, Wei [1] http://forums.citrix.com/thread.jspa?threadID=297461&tstart=0&start=0 # HG changeset patch # User Wei Wang # Date 1333626300 -7200 # Node ID bc0e1869ba5c77e85f3ed012a979ac8061094367 # Parent d690c7e896a26c54a5ab85458824059de72d5cba Fix an incorrect code path in acpi_processor_idle() Signed-off-by: Wei Wang diff -r d690c7e896a2 -r bc0e1869ba5c xen/arch/x86/acpi/cpu_idle.c --- a/xen/arch/x86/acpi/cpu_idle.c Thu Apr 05 11:06:03 2012 +0100 +++ b/xen/arch/x86/acpi/cpu_idle.c Thu Apr 05 13:45:00 2012 +0200 @@ -466,8 +466,8 @@ static void acpi_processor_idle(void) local_irq_enable(); /* Compute time (ticks) that we were actually asleep */ sleep_ticks = ticks_elapsed(t1, t2); - break; } + break; case ACPI_STATE_C3: /*