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 sysproto.h sysunion.h usched.h

Matthew Dillon dillon at
Fri Nov 18 09:54:39 PST 2005

: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?
:Best regards
:   Oliver
: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.


More information about the Commits mailing list