[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hurd Advocacy?



On Mon, Aug 18, 2003 at 05:38:33PM +0200, Farid Hajji wrote:
> Marcus Brinkmann wrote:
> > So you see, it is not about L4, but about glueing Hurd to L4.  Mach did a
> > lot of things for us that L4 is not doing, and we take the chance to try to
> > more consequently implement the Hurd's fundamental design ideas.  Freedom to
> > the users!  Freedom to map your physical memory as you want it, freedom to
> > use the IPC policy you want, and the freedom to have functional device
> > drivers without getting them approved by a kernel master geek ;)
> 
> L4 also provides for user-space scheduling, besides the standard
> in-kernel scheduler. Putting the scheduling policy out of the
> kernel opens up new interesting possibilities, like, perhaps
> real-time threads and better support for SMP systems as well.

Yeah, but it is not at all obvious to me how to do this, and happily, the
Hurd itself doesn't need real time.  We will use some of the scheduling
interfaces in the device driver, in particular preemption control for
interrupt handlers.  As about SMP support, we certainly want to do that, but
it will not be possible to do it at a local level like memory.  Neal gave
the heuristic argument to me at Oslo.  He said, to paraphrase him, that all
memory pages are equal (ie it doesn't matter which page you get), but all
time slices are not.  In particular, it does indeed matter if you get the
next, let's say, one million time slices, or if you get only one and then
have to wait a bit until everybody else got a chance to run, and that one
million times.  Also, time is consumed and then useless to anybody else,
while access to memory can be revoked temporarily without too much problems
(there is still the issue of caching etc, but it's controllable).

The choice of the processor to run on is also not free for the user, because
that would open the system to DoS attacks.  For example, let's say you run
an important task on processor A.  Then N users tasks can cooperate in that
they all choose to run on processor A.

So although the scheduling parameters in L4 are interesting, and will make
it possible to provide exciting user level features like real time, it is
still entirely open how this could be done "the Hurd way". ;)

Thanks,
Marcus

-- 
`Rhubarb is no Egyptian god.' GNU      http://www.gnu.org    marcus@gnu.org
Marcus Brinkmann              The Hurd http://www.gnu.org/software/hurd/
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de/



Reply to: