svn commit: r234490 - in stable/9/sys: i386/conf kern sparc64/sparc64

Marius Strobl marius at
Fri Apr 20 13:47:23 UTC 2012

Author: marius
Date: Fri Apr 20 13:47:22 2012
New Revision: 234490

  MFC: r234247
  Merge from x86:
  Fix interrupt load balancing regression, introduced in revision
  222813, that left all un-pinned interrupts assigned to CPU 0.
  In intr_shuffle_irqs(), remove CPU_SETOF() call that initialized
  the "intr_cpus" cpuset to only contain CPU0.
  This initialization is too late and nullifies the results of calls
  to the intr_add_cpu() that occur much earlier in the boot process.
  r234074 (partial):
  The BSP is not added to the mask of valid target CPUs for interrupts.
  Fix this by adding the BSP as an interrupt target directly in
  Fix !SMP build after r234074.

Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)
  stable/9/sys/fs/   (props changed)
  stable/9/sys/fs/ntfs/   (props changed)
  stable/9/sys/i386/conf/XENHVM   (props changed)
  stable/9/sys/kern/subr_witness.c   (props changed)

Modified: stable/9/sys/sparc64/sparc64/intr_machdep.c
--- stable/9/sys/sparc64/sparc64/intr_machdep.c	Fri Apr 20 10:08:30 2012	(r234489)
+++ stable/9/sys/sparc64/sparc64/intr_machdep.c	Fri Apr 20 13:47:22 2012	(r234490)
@@ -528,9 +528,6 @@ intr_shuffle_irqs(void *arg __unused)
 	struct intr_vector *iv;
 	int i;
-	/* The BSP is always a valid target. */
-	CPU_SETOF(0, &intr_cpus);
 	/* Don't bother on UP. */
 	if (mp_ncpus == 1)

Modified: stable/9/sys/sparc64/sparc64/machdep.c
--- stable/9/sys/sparc64/sparc64/machdep.c	Fri Apr 20 10:08:30 2012	(r234489)
+++ stable/9/sys/sparc64/sparc64/machdep.c	Fri Apr 20 13:47:22 2012	(r234490)
@@ -196,6 +196,13 @@ cpu_startup(void *arg)
 		printf("machine: %s\n", sparc64_model);
 	cpu_identify(rdpr(ver), PCPU_GET(clock), curcpu);
+#ifdef SMP
+	/*
+	 * Add BSP as an interrupt target.
+	 */
+	intr_add_cpu(0);

More information about the svn-src-stable-9 mailing list