Well if you've been wondering where I've been hiding for a while now it's because I've been working on a new scheduler. I was hoping on getting something together for release before I went away for two months just to leave people with something to play with.
This new scheduler uses an algorithm I invented which I describe as a staircase-deadline scheduler because of the way priority and timeslice is handled (staircase) and the additon of deadlines to prevent starvation of low priority tasks and maintain appropriate cpu distribution.
I will not go into too much detail describing it till I finish benchmarking it and posting it to lkml, but here is a brief rundown.
Basically it is a scheduler designed with interactivity built into the design and not requiring any interactivity estimator bolted on like other designs. It aims to be lean, low latency, predictable and maintain fair cpu distribution, while preserving interactivity and cpu throughput. The effect of nice is much greater and predictable with this scheduler.
The interactive performance of this is good at low to high loads, but not as good as mainline at extreme loads. This is because it is a fairer scheduler than 2.6 mainline. Applications start faster though, and some applications show lower cpu usage due to better priority matching between dependent tasks.
Because sched_domains will almost certainly be merged with mainline I've diffed this patch against the sched_domains changes. A full patch against 2.6.4 is available, as is a patch to a tree that already has sched_domains (eg -mm).
So here is the first public release for kerneltrap audiences only:
Staircase-deadline scheduler
Small fix
One small fix required for compile. Posted it on the site.