Date: Sat, 24 May 2014 11:19:56 +0100 (BST) From: Tim Bishop <tim@bishnet.net> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/190169: Increase MAXCPU on amd64 systems Message-ID: <201405241019.s4OAJuUA001379@buzzard.kent.ac.uk> Resent-Message-ID: <201405241030.s4OAU0W4096777@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405241019.s4OAJuUA001379>