Author: royger
Date: Wed May 11 10:10:25 2016
New Revision: 299423
URL: https://svnweb.freebsd.org/changeset/base/299423

Log:
  xen/resume: only send BITMAP IPIs if CPUs > 1
  
  This is quite harmless on HEAD, but it's worse on stable/10 where
  lapic_ipi_vectored is the local APIC native IPI implementation. On
  stable/10 cpu_ops.ipi_vectored should be used instead.
  
  MFC after:    5 days
  Sponsored by: Citrix Systems R&D

Modified:
  head/sys/dev/xen/control/control.c

Modified: head/sys/dev/xen/control/control.c
==============================================================================
--- head/sys/dev/xen/control/control.c  Wed May 11 10:10:11 2016        
(r299422)
+++ head/sys/dev/xen/control/control.c  Wed May 11 10:10:25 2016        
(r299423)
@@ -260,14 +260,14 @@ xctrl_suspend()
        gnttab_resume(NULL);
 
 #ifdef SMP
-       /* Send an IPI_BITMAP in case there are pending bitmap IPIs. */
-       lapic_ipi_vectored(IPI_BITMAP_VECTOR, APIC_IPI_DEST_ALL);
        if (!CPU_EMPTY(&cpu_suspend_map)) {
                /*
                 * Now that event channels have been initialized,
                 * resume CPUs.
                 */
                resume_cpus(cpu_suspend_map);
+               /* Send an IPI_BITMAP in case there are pending bitmap IPIs. */
+               lapic_ipi_vectored(IPI_BITMAP_VECTOR, APIC_IPI_DEST_ALL);
        }
 #endif
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to