Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Oct 2002 20:33:12 +0400 (MSD)
From:      Igor Sysoev <is@rambler-co.ru>
To:        Julian Elischer <julian@elischer.org>
Cc:        arch@FreeBSD.ORG
Subject:   Re: Scheduler framework.
Message-ID:  <Pine.BSF.4.21.0210092030210.86137-100000@is>
In-Reply-To: <Pine.BSF.4.21.0210090041400.37238-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 9 Oct 2002, Julian Elischer wrote:

> If a thread mailbox IS provided:
> the syscall is entered.
> the thread blocks. A second thread is invoked and attached
> to the KSE, which is disconnected from the original thread.

Sorry, where did this second thread come from ?

> the new thread is set to do an upcall, and since it must not
> create any more threads if IT blocks an dsince IT does not have a thread
> mailbox, the new thread and the KSE are bound together.
> The upcall goes to the user boundary. In thread_userret() the 
> ksegrp is scanned for any runnable threads that need a KSE to complete.
> The upcalling thread is held to one side while the KSE is applied to
> each completing thread in turn, and they write their
> exit status back to their individual mailboxes. After the last one
> is finished, teh upcall is allowed to complete, and reports ALL the
> completed syscalls to the userland scheduler.
> At some time in the future the original thread is awoken
> and cannot proceed due to lack of KSE. THe nect time a KSE is available 
> or henext time one tries to go to userland, the same scheme as described
> above happens and It aquires a KSE for long enough to 
> run back o the user boundary and write it's completion status back to
> the mailbox. it then hands the KSE back t the owner who will upcall
> and report the completed thread.

Igor Sysoev
http://sysoev.ru


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.21.0210092030210.86137-100000>