svn commit: r299423 - head/sys/dev/xen/control

Roger Pau Monné royger at FreeBSD.org
Wed May 11 10:10:26 UTC 2016


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
 


More information about the svn-src-head mailing list