Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Nov 2004 17:53:34 -0800
From:      "Devesh Shah" <shah@docomolabs-usa.com>
To:        "Luigi Rizzo" <rizzo@icir.org>, <FreeBSD-hackers@FreeBSD.org>
Subject:   Re: Loadable Scheduler in Freebsd
Message-ID:  <017d01c4c5fe$ebf05de0$8a6115ac@dcml.docomolabsusa.com>
References:  <003f01c4c2c5$17e2c560$8a6115ac@dcml.docomolabsusa.com> <20041106192122.GE22681@funkthat.com> <20041106113552.A95250@xorpc.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks to all of you who have responded to my initial question. I would be
interested in looking
at such implementation if possible. I see there are about 18 other kernel
files that call common scheduler
interface routines defined in ul.c and bsd.c such as sched_nice(),
sched_sleep(), sched_wakeup() etc.
These would have to be transitioned to call appropriately when new scheduler
is loaded and disable the
old scheduler.Also, init (in init_main.c) process is handcrafted and given
the address of kse in thread structure. These kses are defined differently
for both schedulers.

 For my project perspective, I would like to have this functionality of
loadable scheduler though it may not deem necessary from a cleaner kernel
developement such as Freebsd. I agree, process state can not
be guaranteed to be prserverd as they are different scheduler.

thanks,
-devesh



----- Original Message ----- 
From: "Luigi Rizzo" <rizzo@icir.org>
To: "Devesh Shah" <shah@docomolabs-usa.com>; <FreeBSD-hackers@FreeBSD.org>
Sent: Saturday, November 06, 2004 11:35 AM
Subject: Re: Loadable Scheduler in Freebsd


> On Sat, Nov 06, 2004 at 11:21:23AM -0800, John-Mark Gurney wrote:
> > Devesh Shah wrote this message on Thu, Nov 04, 2004 at 15:22 -0800:
> > > Based on the SYSINIT framework, I have made ULE scheduler as a
loadable module but have not quite
> > > figured how to migrate from default 4bsd to newly loaded ule scheduler
or is it possible at all.
> >
> > As someone suggested, switches schedulers would be very complex..
>
> actually i beg to differ, as we implemented it in 4.x back
> in summer 2002 -- our code allowed to switch between schedulers at
> runtime, and we had a prototype Proportional Share (PS for short)
> scheduler which you could use instead of the standard BSD one.
>
> I don't see much of a problem in switching schedulers at runtime,
> if you properly hide the scheduler's internal information from
> the process' descriptor, which is what we did. At which point,
> switching scheduler only requires to rearrange the scheduler's
> information with no impact on the process descriptor or state.
> Of course you can't expect "guarantees" to be preserved across
> switches,if nothing else because they might well be measured
> in different way.
>
> if you wonder why our code was not committed, it was because there
> was not, and i think there is not yet, a good theoretical framework
> for multiprocessor proportional share scheduling, so our PS scheduler
> (note, not the scheduler abstraction framework, only the PS scheduler
> instance) would not work in the SMP case, and this apparently was
> a requirement for inclusion.
>
> cheers
> luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?017d01c4c5fe$ebf05de0$8a6115ac>