Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in Unsupported. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#21352 - [kernel26] Too few cores enabled in default kernel.

Attached to Project: Arch Linux
Opened by Brian Olsen (bnolsen) - Tuesday, 19 October 2010, 19:24 GMT
Last edited by Thomas Bächler (brain0) - Tuesday, 26 October 2010, 08:51 GMT
Task Type Feature Request
Category Packages: Core
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No



Using the default arch kernel on a 24 core opteron results in only 16 cores being detected. Please build the default kernel with the option: "Configure Maximum number of SMP Processors and NUMA Nodes" (MAXSMP) instead of with a specific number. I will be building a 48 core system very soon.

Additional info:

* package kernel26
This task depends upon

Closed by  Thomas Bächler (brain0)
Tuesday, 26 October 2010, 08:51 GMT
Reason for closing:  Implemented
Additional comments about closing:  2.6.36 series in [testing].
Comment by Thomas Bächler (brain0) - Tuesday, 19 October 2010, 21:07 GMT
MAXSMP will set the number of possible CPUs to 4096, which will (according to the kernel help) add 4096*8KB = 32MB of size to the kernel image in memory. This is certainly unnecessary. We should rather increase this number to 64 or 96 for now (when moving to the next kernel series, which will be 2.6.36).
Comment by Dan McGee (toofishes) - Wednesday, 20 October 2010, 00:14 GMT
Or could we just let people that need more than 16 build their own kernel? Seems like adding overhead for the 99.9% of people that don't need it is a bit silly.
Comment by Brian Olsen (bnolsen) - Wednesday, 20 October 2010, 05:15 GMT
Okay max_cores is a bit much then. However, *what* is considered a base" system?
If it's two sockets then 24 cpus should be minimum. If it's only one socket then limit it to 12 cores. A 48 core system with 96GB ram today can be built easily for under 10k. Not a typical desktop but easily attainable. Intel has a 48 core single socket engineering samples avilalble *today* (universities only but we asked about it).

We originally ran into trouble because we imaged a dual core i7 install onto a dual 12 core opteron system (24 total) and wanted to stay as vanilla as possible.
Comment by Thomas Bächler (brain0) - Wednesday, 20 October 2010, 07:52 GMT
The general idea was to increase this number when someone asks - as long as the number remains reasonable. Nowadays, 4-core systems are common, and 16-core systems are not that rare anymore. I myself maintain a 32-core system (it is not running Arch though).

Right now, we have this set to 16 (requiring 128KB of kernel memory), which was increased from 4 due to a past request. Increasing this further to 64 (half a megabyte) or 128 (one megabyte) is still reasonable in my opinion. Increasing it to several thousand isn't. For reference, I am posting the relevant excerpt from $LINUX/arch/x86/Kconfig:

config NR_CPUS
int "Maximum number of CPUs" if SMP && !MAXSMP
range 2 8 if SMP && X86_32 && !X86_BIGSMP
range 2 512 if SMP && !MAXSMP
default "1" if !SMP
default "4096" if MAXSMP
default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
default "8" if SMP
This allows you to specify the maximum number of CPUs which this
kernel will support. The maximum supported value is 512 and the
minimum value which makes sense is 2.

This is purely to save memory - each supported CPU adds
approximately eight kilobytes to the kernel image.
Comment by Kaiting Chen (kaitocracy) - Tuesday, 26 October 2010, 03:19 GMT
Um I think for most people 16 cores is plenty. Surely if you need 16 cores then you'd build your own kernel to squeeze out all the performance you can. And adding support for more cores just increases the kernel image size for the rest of us.
Comment by Thomas Bächler (brain0) - Tuesday, 26 October 2010, 08:51 GMT
Less than half a megabyte of wasted memory on a 64 Bit system is not too bad. The settings have been changed to:
i686: 8 cores (maximum)
x86_64: 64 cores

I suspect we will get requests for 96 or 128 cores in about one year, please open a new bug report then.