Hi,
Following the findings I presented a few months ago
(
http://lkml.org/lkml/2010/4/18/13) about CFS having large vruntime spread
issues, Peter Zijlstra and I pursued the discussion and the implementation
effort (my work on this is
funded by Nokia). I recently put the result together
and came up with this patchset, combining both his work and mine.
With this patchset, I got the following results with wakeup-latency.c (a 10ms
periodic timer), running periodic-fork.sh, Xorg, make -j3 and firefox (playing a
youtube video), with Xorg moving terminal windows around, in parallel on a UP
system (links to the test program source in the dyn min_vruntime patch). The
Xorg interactivity is very good with the new features enabled, but was poor
originally with the vanilla mainline scheduler. The 10ms timer delays are as
follow:
2.6.35.2 mainline* with low-latency features**
maximum latency: 34465.2 µs 8261.4 µs
average latency: 6445.5 µs 211.2 µs
missed timer events: yes no
* 2.6.35.2 mainline test needs to run periodic-fork.sh for a few minutes first
to let it rip the spread apart.
** low-latency features: