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>