Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Nov 1999 20:38:15 -0800 (PST)
From:      Julian Elischer <julian@whistle.com>
To:        "Daniel M. Eischen" <eischen@vigrid.com>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: Threads
Message-ID:  <Pine.BSF.4.10.9911202031230.6767-100000@current1.whistle.com>
In-Reply-To: <3837715C.A8222F4@vigrid.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On Sat, 20 Nov 1999, Daniel M. Eischen wrote:

> Julian Elischer wrote:
> > 7/ A method for treating a pagefault as a blocking IO and returning to the
> >    UTS when a thread get's a pagefault.
> >   7A/ A method of ensuring the UTS doesnt activate #7 if IT blocks.
> > 8/ A method of delivering a signal to the UTS rathe than to any randomly
> >    running thread, and letting it decide which thread should handle it.
> >    (7 and 8 are related)
> 
> How about an approach similar to Solaris?  Deliver the signal to either a
> special KSE/thread that acts as a proxy for the other threads?  Or even
> use an activation to notify the UTS of signals.  From the UTS point of
> view, notification through an activation might be simpler since we already
> have to handle them (activations).

We need to define EXACTLY what an activation means in our context.
it's an upcall, but are all upcalls the result of a prior downcall, (or
even a downcall that 'forked a new KSE')? how does an upcall know what to 
do whej it goes up?

My suggested idea is that the UTS does a blocking syscall
that notifies the kernel that it is now capable of receiving upcalls,
and the kermnel duplicates that KSE and stack and returns on a new
KSE. The UTS knows when it returns, to immediatly allocate a new stack
and thread (probably already allocated and waiting before the downcall
actually) and switches to the new stack (or maybe the downcall was
already done on the new one in which case it restarts the old thread. In
any case the thread that did teh downcall is teh nominated handler of
async events.

(?)



> 
> Dan Eischen
> eischen@vigrid.com
> 





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?Pine.BSF.4.10.9911202031230.6767-100000>