0

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

https://ark.intel.com/products/47925/Intel-Xeon-Processor-E5620-12M-Cache-2_40-GHz-5_86-GTs-Intel-QPI

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

Dave Smylie
  • 141
  • 1
  • 7

1 Answers1

1

Please enable Hyperthreading in the system ROM or BIOS utility.

Depending on the server solution, this needs to be done before the system boots.

enter image description here

ewwhite
  • 194,921
  • 91
  • 434
  • 799
  • I suspect this is the correct answer. This is a managed server and whilst the provider assures me everything is set up from their end I suspect it's not. Currently trying to organize an outage so we can see one way or the other - I will update when this happens. Thanks! – Dave Smylie May 28 '18 at 03:31
  • I believe (based on the screenshot above) this this is enabled - though there is no specific Hyperthread On/OFF toggle - just a dropdown for the multiprocessor version. – Dave Smylie May 30 '18 at 23:59
  • @DaveSmylie Please try enabling Hyperthreading per the graphic I posted. – ewwhite May 31 '18 at 03:07
  • see screen shot above @ewwhite. Looks very different with no explicit Hyper-Threading option. I'm guessing maybe that means that although the CPU supports it, the motherboard doesn't? – Dave Smylie Jun 07 '18 at 23:13