The rationale behind Ingo's patch is to "break up" the timeslices to givebetter scheduling latency to
multiple tasks at the same priority. So it is not "unnecessary context switches," just "extra context switches."
Hmm...my reasoning is that those switches are unnecessary because the
interactivity bonus/penalty will take care of breaking the timeslices up in
case of a CPU hog, albeit not at precise 25 ms granularity. Though having
regularity in scheduling is nice, I think Ingo's patch somewhat negates the
purpose of having heterogenous time slice lengths. I suspect Ingo's
approach will thrash the caches quite a bit more than mine; we should
definitely test this a bit to find out for sure. Any suggestions on how to
go about that?
If we're going to do a context switch every 25 ms no matter what, we might
as well just make the scheduler a true real time scheduler, dump having
different time slice lengths and interactivity recalculations, and go
completely round robin with strictly enforced priorities and a single class
of time slice somewhere 1 to 5 ms long.