While I've been stuck(?) here in Europe having a ball occasionally checking my email on weird keyboards I've been thinking about the evolution and completion of the staircase scheduler design.
One thing I can tell you is that I've been thinking a lot about the code and have 3 changes planned for it. 2 involve real infrastructure changes that should complete the scheduler design without increasing it's complexity significantly. The other is the simple removal of these lines from kernel/sched.c which you can do right now:
// All normal tasks within a priority level round robin at RR_INTERVAL.
if (!(p->slice % RR_INTERVAL) && !batch_task(p)) {
set_tsk_need_resched(p);
dequeue_task(p, rq);
enqueue_task(p, rq);
}
They dont work as I intended and should maintain better cpu balance for different nice levels and increase cpu throughput. This is the version in -ck and the one in mainline is slightly different (no batch reference) but the lines should also be deleted.
Have fun.
Con
2.6?
This may be a dumb question, but does this only apply to 2.6 (and 2.5 predecessors)? 2.4 uses a different scheduler, right?
2.6
Yes, only 2.6
2.6.6?
Any updated patch?
Staircase & RT Audio
Just to let you know ive been trying for quite a while now to get RT Audio apps working with minimal delay and xrun's on the 2.6 and 2.4 kernels.
Your staircase scheduler on 2.6.4 has helped a LOT.
In fact it has completely fixed the latency issues i was having.
Thanks Con!