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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to