Re: [patch] CFS scheduler, -v12

Peter Williams
2007-05-16T02:04:23Z

Ingo Molnar wrote:
> i'm pleased to announce release -v12 of the CFS scheduler patchset.
>
> The CFS patch against v2.6.22-rc1, v2.6.21.1 or v2.6.20.10 can be
> downloaded from the usual place:
>
> http://people.redhat.com/mingo/cfs-scheduler/
>
> -v12 fixes the '3D bug' that caused trivial latencies in 3D games: it
> turns out that the problem was not resulting out of any core quality of
> CFS, it was caused by 3D userspace growing dependent on the current
> inefficiency of the vanilla scheduler's sys_sched_yield()
> implementation, and CFS's "make yield work well" changes broke it.
>
> Even a simple 3D app like glxgears does a sys_sched_yield() for every
> frame it generates (!) on certain 3D cards, which in essence punishes
> any scheduler that implements sys_sched_yield() in a sane manner. This
> interaction of CFS's yield implementation with this user-space bug could
> be the main reason why some testers reported SD to be handling 3D games
> better than CFS. (SD uses a yield implementation similar to the vanilla
> scheduler.)
>
> So i've added a yield workaround to -v12, which makes it work similar to
> how the vanilla scheduler and SD does it. (Xorg has been notified and
> this bug should be fixed there too. This took some time to debug because
> the 3D driver i'm using for testing does not use sys_sched_yield().) The
> workaround is activated by default so -v12 should work 'out of the box'.
>
> Mike Galbraith has fixed a bug related to nice levels - the fix should
> make negative nice levels more potent again.
>
> Changes since -v10:
>
> - nice level calculation fixes (Mike Galbraith)
>
> - load-balancing improvements (this should fix the SMP performance
> problem reported by Michael Gerdau)
>
> - remove the sched_sleep_history_max tunable.
>
> - more debugging fields.
>
> - various cleanups, fixlets and code reorganization
>
> As usual, any sort of feedback, bugreport, fix and suggestion is more
> than welcome,

Load balancing appears to be badly broken in this version. When I
started 4 hard spinners on my 2 CPU machine one ended up on one CPU and
the other 3 on the other CPU and they stayed there.

Peter
--
Peter Williams pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce