Loadable Scheduler in Freebsd
Luigi Rizzo
rizzo at icir.org
Sat Nov 6 11:35:59 PST 2004
On Sat, Nov 06, 2004 at 11:21:23AM -0800, John-Mark Gurney wrote:
> Devesh Shah wrote this message on Thu, Nov 04, 2004 at 15:22 -0800:
> > Based on the SYSINIT framework, I have made ULE scheduler as a loadable module but have not quite
> > figured how to migrate from default 4bsd to newly loaded ule scheduler or is it possible at all.
>
> As someone suggested, switches schedulers would be very complex..
actually i beg to differ, as we implemented it in 4.x back
in summer 2002 -- our code allowed to switch between schedulers at
runtime, and we had a prototype Proportional Share (PS for short)
scheduler which you could use instead of the standard BSD one.
I don't see much of a problem in switching schedulers at runtime,
if you properly hide the scheduler's internal information from
the process' descriptor, which is what we did. At which point,
switching scheduler only requires to rearrange the scheduler's
information with no impact on the process descriptor or state.
Of course you can't expect "guarantees" to be preserved across
switches,if nothing else because they might well be measured
in different way.
if you wonder why our code was not committed, it was because there
was not, and i think there is not yet, a good theoretical framework
for multiprocessor proportional share scheduling, so our PS scheduler
(note, not the scheduler abstraction framework, only the PS scheduler
instance) would not work in the SMP case, and this apparently was
a requirement for inclusion.
cheers
luigi
More information about the freebsd-hackers
mailing list