I didn't but some students did.
In a previous life, I did implement a runtime configurable CPU
scheduling mechanism (implemented on True64, Solaris and Linux) that
allowed schedulers to be loaded as modules at run time. This was
released commercially on True64 and Solaris. So I know that it can be done.
I have thought about doing something similar for the SPA schedulers
which differ in only small ways from each other but lack motivation.
From my POV, the current version of plugsched is considerably simpler
than it was when I took the code over from Con as I put considerable
effort into minimizing code overlap in the various schedulers.
I also put considerable effort into minimizing any changes to the load
balancing code (something Ingo seems to think is a deficiency) and the
result is that plugsched allows "intra run queue" scheduling to be
easily modified WITHOUT effecting load balancing. To my mind scheduling
and load balancing are orthogonal and keeping them that way simplifies
things.
As Ingo correctly points out, plugsched does not allow different
schedulers to be used per CPU but it would not be difficult to modify it
so that they could. Although I've considered doing this over the years
I decided not to as it would just increase the complexity and the amount
of work required to keep the patch set going. About six months ago I
decided to reduce the amount of work I was doing on plugsched (as it was
obviously never going to be accepted) and now only publish patches
against the vanilla kernel's major releases (and the only reason that I
kept doing that is that the download figures indicated that about 80
users were interested in the experiment).
Peter
PS I no longer read LKML (due to time constraints) and would appreciate
it if I could be CC'd on any e-mails suggesting scheduler changes.
PPS I'm just happy to see that Ingo has finally accepted that the
vanilla scheduler was badly in need of fixing and don't really care who
fixes it.
PPS Different schedulers for different aims (i.e. server or work
station) do make a difference. E.g. the spa_svr scheduler in plugsched
does about 1% better on kernbench than the next best scheduler in the bunch.
PPPS Con, fairness isn't always best as humans aren't very altruistic
and we need to give unfair preference to interactive tasks in order to
stop the users flinging their PCs out the window. But the current
scheduler doesn't do this very well and is also not very good at
fairness so needs to change. But the changes need to address
interactive response and fairness not just fairness.
--
Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
-