[RFT][patch] Scheduling for HTT and not only

Alexander Motin mav at FreeBSD.org
Wed Feb 15 20:06:39 UTC 2012


On 02/15/12 21:54, Jeff Roberson wrote:
> On Wed, 15 Feb 2012, Alexander Motin wrote:
>> As before I've tested this on Core i7-870 with 4 physical and 8
>> logical cores and Atom D525 with 2 physical and 4 logical cores. On
>> Core i7 I've got speedup up to 10-15% in super-smack MySQL and
>> PostgreSQL indexed select for 2-8 threads and no penalty in other
>> cases. pbzip2 shows up to 13% performance increase for 2-5 threads and
>> no penalty in other cases.
>
> Can you also test buildworld or buildkernel with a -j value twice the
> number of cores? This is an interesting case because it gets little
> benefit from from affinity and really wants the best balancing possible.
> It's also the first thing people will complain about if it slows.

I'll do it, but even now I can say that existing balancing algorithm 
requires improvements to better handle SMT. If I understand correctly, 
present code never takes the last running thread from it's CPU. It is 
fine for non-SMT systems, but with SMT it may cause imbalance and as 
result reduced total performance. While current pickcpu() algorithm 
should be precise enough, its decision can be easily affected by some 
microsecond transient load, such as interrupt threads, etc, and results 
of that decision may be effective for seconds.

-- 
Alexander Motin


More information about the freebsd-hackers mailing list