DragonFly commits List (threaded) for 2005-11
Re: cvs commit: src/sys/conf files src/sys/i386/i386 machdep.c src/sys/kern init_sysent.c kern_usched.c syscalls.c syscalls.master usched_bsd4.c src/sys/sys syscall-args syscall-hide.h syscall.h syscall.mk sysproto.h sysunion.h usched.h
:I have a (maybe) dumb question, just out of curiosity ...
:When there are multiple schedulers, how will resources
:(i.e. processor time) be shared between them? Will there
:be a "meta scheduler" which assigns processor time to the
:various schedulers, which in turn assign it to processes?
:And anther question: Will it be possible to migrate
:running processes from one scheduler to a different one?
:And how is this different from the concept of scheduling
:classes, like in Solaris? Or is it just the same?
:Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
All the high level schedulers use the LWKT scheduler to actually
schedule a thread. We have a number of choices when we have multiple
schedulers are competing with each other on the same cpu. If we do
nothing then their relative LWKT priority will dictate who has precedence.
If they are using the same LWKT priority then they will round-robin.
I think this is how we are going to start. Ultimately we will want to
add additional ABI calls to allow the schedulers to agree on which one
should get the cpu based on some common critera. Alternatively we can
implement a fair-share scheduling abstraction that manages and decides
which of N competing schedulers is to get the cpu. This can be a simple
procedure call to a common fair-share scheduling procedure in the
current-process acquisition path that all schedulers must implement.