On Wed, Mar 28, 2012 at 11:37:06AM +0000, Alexander Motin wrote: > Author: mav > Date: Wed Mar 28 11:37:06 2012 > New Revision: 233599 > URL: http://svn.freebsd.org/changeset/base/233599 > > Log: > MFC r232207, r232454: > Rework CPU load balancing in SCHED_ULE: > - In sched_pickcpu() be more careful taking previous CPU on SMT systems. > Do it only if all other logical CPUs of that physical one are idle to avoid > extra resource sharing. > - In sched_pickcpu() change general logic of CPU selection. First > look for idle CPU, sharing last level cache with previously used one, > skipping SMT CPU groups. If none found, search all CPUs for the least loaded > one, where the thread with its priority can run now. If none found, search > just for the least loaded CPU. > - Make cpu_search() compare lowest/highest CPU load when comparing CPU > groups with equal load. That allows to differentiate 1+1 and 2+0 loads. > - Make cpu_search() to prefer specified (previous) CPU or group if load > is equal. This improves cache affinity for more complicated topologies. > - Randomize CPU selection if above factors are equal. Previous code tend > to prefer CPUs with lower IDs, causing unneeded collisions. > - Rework periodic balancer in sched_balance_group(). With cpu_search() > more intelligent now, make balansing process flat, removing recursion > over the topology tree. That fixes double swap problem and makes load > distribution more even and predictable. > > All together this gives 10-15% performance improvement in many tests on > CPUs with SMT, such as Core i7, for number of threads is less then number > of logical CPUs. In some tests it also gives positive effect to systems > without SMT. > > Sponsored by: iXsystems, Inc.
Nice! Now X3430 completely silent in idle system. _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"