Linux – Disabling Hyperthreading Without BIOS Access

dell-poweredgehp-prolianthyperthreading

I have a system running a financial trading application at a remote facility. I do not have access to the ILO/DRAC, but need to disable hyperthreading. The system runs Intel Westmere 3.33GHz X5680 hex-core CPUs. I can reboot, but want to make sure that the system does not enable hyperthreading due to performance problems. Is there a clean way to do this from within Linux?

Edit: The noht directive added to the kernel boot command line did not work. Same for RHEL.

See:
https://bugzilla.redhat.com/show_bug.cgi?id=440321#c9

Best Answer

Newer Kernels provide a Simultaneous Multithreading (SMT) control.

You can check the state of SMT with;

cat /sys/devices/system/cpu/smt/active

Change the state with

echo off > /sys/devices/system/cpu/smt/control

Options are;

  • on
  • off
  • forceoff

We have tested this with Linux Kernel 4.4.0