"Symmetric multithreading (hyperthreading) is an interesting new concept
that IMO deserves full scheduler support. Physical CPUs can have multiple
(typically 2) logical CPUs embedded, and can run multiple tasks 'in
parallel' by utilizing fast hardware-based context-switching between the two
register sets upon things like cache-misses or special instructions. To the
OSs the logical CPUs are almost undistinguishable from physical CPUs. In
fact the current scheduler treats each logical CPU as a separate physical
CPU - which works but does not maximize multiprocessing performance on
SMT/HT boxes."
Read on for Ingo's full explanation
http://kerneltrap.org/node/391?PHPSESSID=ff817ec3db386b00075dca0c5d4c1864
Stephen