When is it worth enabling hyperthreading?

Pierre-Luc Drouin pldrouin at pldrouin.net
Thu Oct 8 03:24:25 UTC 2009


Could someone explain me in which cases it is useful to enable 
hyperthreading on a machine running FreeBSD 8.0 and in which other cases 
it is not a good idea? Is that possible that hyperthreading is 
disadvantageous unless the number of active (non-sleeping) threads is 
really high?

For example, if I have an i7 CPU with 4 physical cores and that I run 
some multi-threaded code that has only 4 threads, it will run almost 
always (twice) slower with hyperthreading enabled than when I disable it 
in the BIOS. If I understand correctly, hyperthreading has the advantage 
of being able to do CPU context switching faster than the OS, but it 
does this context switching systematically instead of only when 
requested, so it slows things down unless the number of running 
(non-sleeping) threads is greater or equal to let say the number of 
physical threads x 1.5-1.75.


More information about the freebsd-questions mailing list