I have a Centos 7.3 server running a dual socket quad core Intel Xeon CPU E5620 @ 2.40GHz. I would like to use hyperthreading on this server but it seems it has been disabled.
The spec sheet for this chip indicates it should support hyperthreading:
Intel® Hyper-Threading Technology ‡ Yes
And the CPU flags indicate the same:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts mmx fxsr sse sse2 ss **ht** syscall nx rdtscp
lm constant_tsc arch_perfmon pebs bts nopl xtopolog
tsc_reliable nonstop_tsc aperfmperf pni ssse3 cx16 sse4_1
sse4_2 x2apic popcnt hypervisor lahf_lm ida arat dtherm
The machine currently has an SMP kernel running (i think) based on the name:
Linux PR-ORACLE01.prvln.local 3.8.13-118.14.1.el7uek.x86_64 #2 SMP
The reason I don't think that hyperthreading is enabled is the output from lscpu:
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 2
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 26
Model name: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE
0 0 0 0 0:0:0:0 yes
1 0 0 1 0:0:0:0 yes
2 0 1 2 1:1:1:1 yes
3 0 1 3 1:1:1:1 yes
My understanding is that I should be seeing two threads per core instead of just the single thread.
I've had a good hunt around and the only suggestions I could find where to make sure I had an smp kernel running (I think this is the default behaviour now, but based on the name above, my kernel has it), or to try and pass acpi=ht
to the kernel via grub at boot. (Didn't help, but acpi was already enabled so I wasn't really expecting this to do much)
This page here: https://www.golinuxhub.com/2018/01/how-to-disable-or-enable-hyper.html indicates that you should be able to turn it on/off by echoing 0 or 1 into
/sys/devices/system/cpu/cpu${i}/online;
(where $i is the cpu in question)
This file does not exist on my machine, but there is a /sys/devices/system/cpu/online file that just contains
0-3
As far as I can tell, this is enabled in the BIOS (or at least Multiprocessor Specification is set to 1.4)
Multiprocessor Specification: [1.4]
https://i.imgur.com/oylFALZ.png <- screenshot of bios
https://i.imgur.com/W8lo9od.png <-- screen shot of Advanced Chipset Control
Advanced Chipset Control
Enable memory gap: [Disabled]
ECC Config: [Disabled]
SERR signal condition [Multiple bit]
Am I mis-interpreting the lspcu output? Or is there something else I need to do to enable this?
Thanks