Date: Sat, 25 Jan 2003 22:24:59 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: Julian Elischer <julian@elischer.org> Cc: Jeff Roberson <jroberson@chesapeake.net>, Steve Kargl <sgk@troutmask.apl.washington.edu>, Robert Watson <rwatson@FreeBSD.ORG>, Gary Jennejohn <garyj@jennejohn.org>, arch@FreeBSD.ORG Subject: Re: New scheduler - Interactivity fixes Message-ID: <200301260624.h0Q6OxSl025784@apollo.backplane.com> References: <Pine.BSF.4.21.0301252214300.89171-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Although... it might be even better if we could specify no schedulers
in the kernel build and then load one as a boot-time module. Or if
we could load several schedulers at compile-time (i.e. all their
functions and globals would be static and they would register via
a SYS entry) and allow the scheduler to be selected with a boot-time
variable.
That might dovetail into a methodology to allow schedulers to be
switched on the fly. I've thought about that a bit and it occurs to
me that run-time switching a scheduler does not require that a common
runq methodology be used. Instead we simply have an API call that
allows the kernel to 'collect' all the queued KSEs into a single queue
and then reallocate their sub-structures and re-add them to the new
scheduler.
/*
* Ask the scheduler to pull off all the KSEs on its runq or runqs
* (for all cpu's) and place them in colq. The kernel will call this
* function prior to switching to a new scheduler. The scheduler
* is also expected to cleanup any other auxillary management it
* had initialized.
*/
void
sched_collect(struct rqhead *colq)
{
}
/*
* Ask the scheduler to emplace all the KSEs on colq back onto the
* appropriate scheduler-specific run queue. This function is called
* after the kernel initializes the new scheduler and assigns new
* empty substructures to the KSE,KSEGs,etc... as per the new scheduler.
*/
void
sched_restore(struct rqhead *colq)
{
}
-Matt
:(Julian)
:I think that the option should be set up so that no option gives the
:current scheduler.
:
:On Sun, 26 Jan 2003, Jeff Roberson wrote:
:
:> In a moment I'm adding some config options to handle this. I sent some
:> mail out to current@ and I'm adding a line to updating. This has all gone
:> through re. You will be required to specify one of SCHED_4BSD or
:> SCHED_ULE (new name for sched_smp) in your config file. I went away from
:> sched_smp because it should be a very effective up scheduler as well.
:>
:> Cheers,
:> Jeff
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301260624.h0Q6OxSl025784>
