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

[Xen-devel] [PATCH] Fix cpu hotplug bug of mtrr update inconsistency



Fix cpu hotplug bug of mtrr update inconsistency

c/s 20021 changes some mtrr update logic.
A bug is, when a cpu hot-add and then mtrr update, another cpu hot-add may 
break cpu_online_map 
consistency and result in deadlock. 
This patch is used to fix the bug. It move 'mtrr_ap_init' back to bp-ap sync 
stage protected by 
CPU_STATE_CALLOUT and CPU_STATE_CALLIN, and then keep consistency.

Signed-off-by: Liu, Jinsong <jinsong.liu@xxxxxxxxx>


diff -r 96917cf25bf3 xen/arch/x86/smpboot.c
--- a/xen/arch/x86/smpboot.c    Fri May 28 10:54:07 2010 +0100
+++ b/xen/arch/x86/smpboot.c    Tue Jun 01 13:58:44 2010 +0800
@@ -202,6 +202,8 @@ void smp_callin(void)
     /* Save our processor parameters. */
     smp_store_cpu_info(cpu);
 
+    mtrr_ap_init();
+
     if ( (rc = hvm_cpu_up()) != 0 )
     {
         extern void (*dead_idle) (void);
@@ -374,7 +376,6 @@ void start_secondary(void *unused)
 
     /* We can take interrupts now: we're officially "up". */
     local_irq_enable();
-    mtrr_ap_init();
 
     microcode_resume_cpu(cpu);
 

Attachment: fix-cpu-hotplug-mtrr.patch
Description: fix-cpu-hotplug-mtrr.patch

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

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