EEVDF Scheduler Patches Updated For The Linux Kernel
Intel Linux engineer Peter Zijlstra has sent out updated patches on the kernel patch series he's been working on the past several months around the "EEVDF" CPU scheduler for improving upon the current CFS scheduler code.
EEVDF is based on the Earliest Eligible Virtual Deadline First approach that was outlined in a research paper from the late 90's.
Zijlstra's patches have shown nice latency reduction over the current CFS scheduler behavior with a variety of different tasks and benchmarks. He comments in the patch series and requests further testing from developers and the testing community:
See more on the EEVDF scheduler work via this patch series for testing.
EEVDF is based on the Earliest Eligible Virtual Deadline First approach that was outlined in a research paper from the late 90's.
Zijlstra's patches have shown nice latency reduction over the current CFS scheduler behavior with a variety of different tasks and benchmarks. He comments in the patch series and requests further testing from developers and the testing community:
There's a bunch of RFC patches at the end and one DEBUG patch. Of those, the PLACE_BONUS patch is a mixed bag of pain. A number of benchmarks regress because EEVDF is actually fair and gives a 100% parent vs a 50% child a 67%/33% split (stress-futex, stress-nanosleep, starve, etc..) instead of a 50%/50% split that sleeper bonus achieves. Mostly I think these benchmarks are somewhat artificial/daft but who knows.
The PLACE_BONUS thing horribly messes up things like hackbench and latency-nice because it places things too far to the left in the tree. Basically it messes with the whole 'when', by placing a task back in history you're putting a burden on the now to accomodate catching up. More tinkering required.
But over-all the thing seems to be fairly usable and could do with more extensive testing.
See more on the EEVDF scheduler work via this patch series for testing.
10 Comments