On Mon, 06 Feb 2012 09:04:31 +0200
Alexander Motin <mav@Free...> wrote:
> I've analyzed scheduler behavior and think found the problem with HTT.
> SCHED_ULE knows about HTT and when doing load balancing once a second,
> it does right things. Unluckily, if some other thread gets in the way,
> process can be easily pushed out to another CPU, where it will stay for
> another second because of CPU affinity, possibly sharing physical core
> with something else without need.
> I've made a patch, reworking SCHED_ULE affinity code, to fix that:
> http://people.freebsd.org/~mav/sched.htt.patch >
10.0-CURRENT FreeBSD r231026M: Mon Feb 6 10:40:10 CET 2012 amd64
CPU: AMD Phenom(tm) II X6 1090T Processor (3214.71-MHz K8-class CPU)
This patch seems pretty good. Previously I was using SCHED_4BSD.
My simple test was "make -j6 buildworld" while loading web pages at the
same time and observing the CPU core loading using gkrellm.
In general the loads seemed to be more evenly distributed than without
the patch. With the old ULE CPU0 seemed to be underutilized, now it's
an equal partner.
Web pages also loaded quite quickly despite the high load on the cores.
I did notice some mouse pointer lag, but it was quite minor.
The buildworld time also seemed to be pretty much the same as with