Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Apr 2012 13:47:22 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r234490 - in stable/9/sys: i386/conf kern sparc64/sparc64
Message-ID:  <201204201347.q3KDlM9A041670@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Fri Apr 20 13:47:22 2012
New Revision: 234490
URL: http://svn.freebsd.org/changeset/base/234490

Log:
  MFC: r234247
  
  Merge from x86:
  
  r233961:
  
  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
  
  r234105:
  
  Fix !SMP build after r234074.

Modified:
  stable/9/sys/sparc64/sparc64/intr_machdep.c
  stable/9/sys/sparc64/sparc64/machdep.c
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)
 		return;

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);
+#endif
 }
 
 void



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