[LAU] How to turn off hyperthreading?

Len Ovens len at ovenwerks.net
Sun Dec 22 16:23:03 UTC 2013


On Sat, 21 Dec 2013, david wrote:

> Too, late, already have the machine with the i7. I think it only cost 
> $15 more than the i5 option. I this particular model's i5 base processor 
> has a lower clock rate than the i7 started with.
>
> Just checked the BIOS. No option to turn of hyperthreading.
>
In linux each hyperthread is treated as another core. So if you have 4 
cores, it will look like 8 with hyperthreading on. Every second cpu that 
linux sees is a hyperthread. so you only want cpu 0,2,4,and 6. There is a 
kernel command line option to have the kernel ignore some cpus, get it to 
ignore cpu 1,3,5 and 7. I seem to be off line right now so I can't look it 
up. Ah, back up.
isolcpus= cpu_number[, cpu_number,...]

The blurb for that:
"Remove the specified CPUs, as defined by the cpu_number values, from the 
general kernel SMP balancing and scheduler algroithms. The only way to 
move a process onto or off an "isolated" CPU is via the CPU affinity 
syscalls. cpu_number begins at 0, so the maximum value is 1 less than the 
number of CPUs on the system.

This option is the preferred way to isolate CPUs. The alternative, 
manually setting the CPU mask of all tasks in the system, can cause 
problems and suboptimal load balancer performance."

The place to add this to your system (if you don't want enter it every 
time you boot) is in GRUBs config. The best place to do this varies with 
the ditro. For example, I have found the best place to do this on a Ubuntu 
system is in /etc/default/grub.d/ as it does not interfere with upgrades.

The place you will see mentioned more often is a file called 
/etc/default/grub Look for a line like GRUB_CMDLINE_LINUX="" and edit it 
(as root of course) to:
GRUB_CMDLINE_LINUX="isolcpus= 1,3,5,7"

If you have more than 4 cores(6 or 8), I do not know if cpus higher than 9 
are in hex or dec.

If you wish to have grub menu options to boot either way.... I would guess 
it is time to learn more about GRUB  :)  It is easy to add menu items on a 
static system, but gets much harder on a system with lots of updates.

Hmm, there seem to be a lot of irq options too. I wonder if they would be 
able to force better irq assignment within the system. I know telling the 
bios not to select irqs for USB gives better irq layout for me.

Anyway, the list of kernel options I based this on is from:
http://oreilly.com/linux/excerpts/9780596100797/kernel-boot-command-line-parameter-reference.html


-- Len Ovens 
www.ovenwerks.net




More information about the Linux-audio-user mailing list