[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen stable-4.4] x86, idle: add barriers to CLFLUSH workaround



commit a9e120bb9adbc0a420c2a4ad88ff7abbc3e79cd8
Author:     H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
AuthorDate: Fri Oct 17 15:51:20 2014 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Oct 17 15:51:20 2014 +0200

    x86, idle: add barriers to CLFLUSH workaround
    
    ... since the documentation is explicit that CLFLUSH is only ordered
    with respect to MFENCE.
    
    Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    master commit: 48d32458bcd453e31b458bca868a079a6d0a38af
    master date: 2014-09-09 18:09:08 +0200
---
 xen/arch/x86/acpi/cpu_idle.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index 6aaa7ab..2279f8f 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -300,7 +300,11 @@ void mwait_idle_with_hints(unsigned int eax, unsigned int 
ecx)
     s_time_t expires = per_cpu(timer_deadline, cpu);
 
     if ( boot_cpu_has(X86_FEATURE_CLFLUSH_MONITOR) )
+    {
+        mb();
         clflush((void *)&mwait_wakeup(cpu));
+        mb();
+    }
 
     __monitor((void *)&mwait_wakeup(cpu), 0, 0);
     smp_mb();
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.4

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.