Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Apr 2012 22:58:23 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r234247 - head/sys/sparc64/sparc64
Message-ID:  <201204132258.q3DMwNTM001464@svn.freebsd.org>

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

Log:
  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.
  
  MFC after: 3 days

Modified:
  head/sys/sparc64/sparc64/intr_machdep.c
  head/sys/sparc64/sparc64/machdep.c

Modified: head/sys/sparc64/sparc64/intr_machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/intr_machdep.c	Fri Apr 13 22:47:23 2012	(r234246)
+++ head/sys/sparc64/sparc64/intr_machdep.c	Fri Apr 13 22:58:23 2012	(r234247)
@@ -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: head/sys/sparc64/sparc64/machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/machdep.c	Fri Apr 13 22:47:23 2012	(r234246)
+++ head/sys/sparc64/sparc64/machdep.c	Fri Apr 13 22:58:23 2012	(r234247)
@@ -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?201204132258.q3DMwNTM001464>