Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 May 2016 10:10:25 +0000 (UTC)
From:      =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <royger@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r299423 - head/sys/dev/xen/control
Message-ID:  <201605111010.u4BAAP5e008840@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605111010.u4BAAP5e008840>