All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] acpi: do not flush cache if cx->type != ACPI_STATE_C3
@ 2012-04-12 13:11 Wei Wang
  2012-04-12 17:05 ` Steven
  2012-04-13  2:14 ` Zhang, Yang Z
  0 siblings, 2 replies; 7+ messages in thread
From: Wei Wang @ 2012-04-12 13:11 UTC (permalink / raw)
  To: Jan Beulich, Keir Fraser
  Cc: yang.z.zhang, Andre Przywara, xen-devel, Wei Huang, Ostrovsky, Boris

Hi Jan,
This is a revised fix from my last post[1]. We found that the 
performance issue[2] is actually caused by an unnecessary cache flush 
when fall-through happens. According to acpi spec, c2 has cache 
consistency, we don't need cache flush if cx->type != ACPI_STATE_C3.
This fix improves performance of some OEM systems significantly. I would 
suggest to back port it to 4.1, 4.0 and even 3.4.

Thanks,
We

[1]
http://lists.xen.org/archives/html/xen-devel/2012-04/msg00395.html
[2]
http://forums.citrix.com/thread.jspa?threadID=297461&tstart=0&start=0

# HG changeset patch
# Parent 6efb9f934bfb4c46af375612fb01e65d15518380
# User Wei Wang <wei.wang2@amd.com>
acpi: do not flush cache if cx->type != ACPI_STATE_C3

Signed-off-by: Wei Wang <wei.wang2@amd.com>

diff -r 6efb9f934bfb -r 85775fd04cf4 xen/arch/x86/acpi/cpu_idle.c
--- a/xen/arch/x86/acpi/cpu_idle.c      Thu Apr 05 11:24:26 2012 +0100
+++ b/xen/arch/x86/acpi/cpu_idle.c      Thu Apr 12 14:15:09 2012 +0200
@@ -509,7 +509,8 @@ static void acpi_processor_idle(void)
          else if ( !power->flags.bm_check )
          {
              /* SMP with no shared cache... Invalidate cache  */
-            ACPI_FLUSH_CPU_CACHE();
+            if ( cx->type == ACPI_STATE_C3 )
+                ACPI_FLUSH_CPU_CACHE();
          }

          /* Invoke C3 */

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-04-13 13:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-12 13:11 [PATCH] acpi: do not flush cache if cx->type != ACPI_STATE_C3 Wei Wang
2012-04-12 17:05 ` Steven
2012-04-13  7:23   ` Jan Beulich
2012-04-13  2:14 ` Zhang, Yang Z
2012-04-13  8:30   ` Jan Beulich
2012-04-13  9:06     ` Wei Wang
2012-04-13 13:20       ` Zhang, Yang Z

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.