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>