svn commit: r234247 - head/sys/sparc64/sparc64
Marius Strobl
marius at FreeBSD.org
Fri Apr 13 22:58:24 UTC 2012
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
More information about the svn-src-head
mailing list