Improved scheduling behavior for P4 "Hyperthreaded" CPUs
Note: HT CPUs do _not_ require this patch. It is an optimization.
The O(1) scheduler load balancer works to optimally distribute the
process load across all available CPUs. In symmetric-multithreading
(SMT) CPUs such as Intel P4s with hyperthreading (HT) enabled, all
processors are not created equal. If possible, it is ideal to
schedule processes onto fully unused processor packages (e.g. both
virtual processors idle).
This patch implements a new balancing policy in the load balancer to
better distribute load on these systems. It has no effect on UP or
non-x86 systems. On SMP x86 but non-HT machines, there is a small
overhead but no change in behavior.
Robert Love