Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Nov 2004 11:35:52 -0800
From:      Luigi Rizzo <rizzo@icir.org>
To:        Devesh Shah <shah@docomolabs-usa.com>, FreeBSD-hackers@FreeBSD.org
Subject:   Re: Loadable Scheduler in Freebsd
Message-ID:  <20041106113552.A95250@xorpc.icir.org>
In-Reply-To: <20041106192122.GE22681@funkthat.com>; from gurney_j@resnet.uoregon.edu on Sat, Nov 06, 2004 at 11:21:23AM -0800
References:  <003f01c4c2c5$17e2c560$8a6115ac@dcml.docomolabsusa.com> <20041106192122.GE22681@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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?20041106113552.A95250>