>Number:         190169
>Category:       kern
>Synopsis:       Increase MAXCPU on amd64 systems
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 24 10:30:00 UTC 2014
>Closed-Date:
>Last-Modified:
>Originator:     Tim Bishop
>Release:        FreeBSD 11.0-CURRENT amd64
>Organization:
>Environment:
System: FreeBSD buzzard 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r266603M: Sat May 
24 03:25:35 BST 2014 tdb@buzzard:/usr/obj/usr/src/sys/GENERIC amd64

        4x Intel(R) Xeon(R) CPU E7-4830 v2 @ 2.20GHz (2200.05-MHz K8-class CPU)
        This gives 40 cores with a total of 80 threads.

>Description:
        In param.h MAXCPU is set to 64. This results in 16 of the
        80 threads being disabled at boot time, and errors like:

        FreeBSD/SMP: Multiprocessor System Detected: 64 CPUs
        FreeBSD/SMP: 3 package(s) x 10 core(s) x 2 SMT threads
         cpu0 (BSP): APIC ID:  0
         cpu1 (AP): APIC ID:  1
         ...
         cpu62 (AP): APIC ID: 98
         cpu63 (AP): APIC ID: 99
          cpu (AP): APIC ID: 100 (disabled)
          cpu (AP): APIC ID: 101 (disabled)
          cpu (AP): APIC ID: 102 (disabled)
          cpu (AP): APIC ID: 103 (disabled)
          cpu (AP): APIC ID: 104 (disabled)
          cpu (AP): APIC ID: 105 (disabled)
          cpu (AP): APIC ID: 112 (disabled)
          cpu (AP): APIC ID: 113 (disabled)
          cpu (AP): APIC ID: 114 (disabled)
          cpu (AP): APIC ID: 115 (disabled)
          cpu (AP): APIC ID: 116 (disabled)
          cpu (AP): APIC ID: 117 (disabled)
          cpu (AP): APIC ID: 118 (disabled)
          cpu (AP): APIC ID: 119 (disabled)
          cpu (AP): APIC ID: 120 (disabled)
          cpu (AP): APIC ID: 121 (disabled)
        WARNING: Non-uniform processors.
        WARNING: Using suboptimal topology.

>How-To-Repeat:
        Boot any recent FreeBSD version, including HEAD, on a system
        with more than 64 CPU cores/threads.

>Fix:
        The current top end processors have 15 cores and 30 threads.
        So a quad socket system would have a total of 120 threads.
        I believe this should be supported in GENERIC so FreeBSD
        works out of the box. The patch below does this.

        It'd be nice to see this MFCed to stable/10 so it makes the
        10.1 release. It'd be even nicer to see it MFCed to stable/9
        for 9.3, but I suspect it'll be too late for that.

        For what it's worth I tested the most recent Ubuntu release
        and it detected all the threads out of the box.

        Some consideration should also be given to kern/185831. It
        has been committed but I don't think it has been MFCed yet.
        I can confirm that I don't receive any panic on HEAD with
        MAXCPU set to 128 and with witness enabled.

--- diff begins here ---
Index: sys/amd64/include/param.h
===================================================================
--- sys/amd64/include/param.h   (revision 266603)
+++ sys/amd64/include/param.h   (working copy)
@@ -65,7 +65,7 @@
 
 #if defined(SMP) || defined(KLD_MODULE)
 #ifndef MAXCPU
-#define MAXCPU         64
+#define MAXCPU         128
 #endif
 #else
 #define MAXCPU         1
--- diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to