3

I have a two socket system. I have disabled hyperthreading in BIOS.

numactl --hardware shows this:

ucs48:~$ numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 2 4 6
node 0 size: 12222 MB
node 0 free: 11192 MB
node 1 cpus: 1 3 5 7
node 1 size: 12288 MB
node 1 free: 11366 MB
node distances:
node   0   1 
  0:  10  21 
  1:  21  10 

Why are the CPU numbers for node 0 not: 0 1 2 3 and node 1: 4 5 6 7

On some other systems, I have continuous CPU numbers on a NUMA node. Is there any config (which) where I can fix this? What is the root cause of this?

My kernel command line is:

BOOT_IMAGE=/vmlinuz-3.2.0-23-generic root=/dev/mapper/fe--ucs48-root ro intel_iommu=on

Some additional info:

ucs48:/proc# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 44
Stepping:              2
CPU MHz:               2395.000
BogoMIPS:              4800.19
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K
NUMA node0 CPU(s):     0,2,4,6
NUMA node1 CPU(s):     1,3,5,7
Hristo Iliev
  • 72,659
  • 12
  • 135
  • 186
Al Patel
  • 31
  • 2
  • Some additional info: – Al Patel Aug 26 '14 at 21:53
  • 2
    CPU core numbering is usually provided to the OS by the system BIOS through a special ACPI table. There might be a switch in the BIOS to change this order or there might be not. Also, different systems tend to have different BIOSes and hence on some the numbering is compact (0,1,2,3 / 4,5,6,7) and on others it's scattered (0,2,4,6 / 1,3,5,7). It is also possible that the scheme may change between different BIOS revisions on the same motherboard. – Hristo Iliev Sep 05 '14 at 14:53

0 Answers0