DragonFly kernel List (threaded) for 2004-12
Re: scheduler rewrite
Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx> writes:
> There have been discussions about the scheduler on this list in
> the past. Basically it is a two-stage job. The first stage would
> be to create an API to allow different userland schedulers to be
> loaded on-the-fly (on a live system), and possibly even allow multiple
> schedulers to operate in parallel. This is possible because everything
> winds up being scheduled by LWKT at the lowest level anyway. That is,
> the userland scheduler is only determining when user processes run and
> on what cpu they run and is not actually responsible for the mechanics
> of running the processes.
Sounds a bit like L4. :) L4 has its own API for thread scheduling as well and
Linux has been implemented as a thread [or colleciton of threads] in userspace
on top of it.
Along with that is the ability to have each thread assign it's own pager
thread. This allows a recursive mapping design to keep things like L4 Linux
efficient on L4.
It's pretty neat stuff, tangentially related to DragonFly at best. I mentioned
it as a sort of proof that some of these ideas do exist in the wilds outside
BSD and are pretty successful.