From owner-freebsd-arch Mon Nov 29 0:25:29 1999 Delivered-To: freebsd-arch@freebsd.org Received: from ns1.yes.no (ns1.yes.no [195.204.136.10]) by hub.freebsd.org (Postfix) with ESMTP id E5D8815361 for ; Mon, 29 Nov 1999 00:25:27 -0800 (PST) (envelope-from eivind@bitbox.follo.net) Received: from bitbox.follo.net (bitbox.follo.net [195.204.143.218]) by ns1.yes.no (8.9.3/8.9.3) with ESMTP id JAA11862 for ; Mon, 29 Nov 1999 09:25:26 +0100 (CET) Received: (from eivind@localhost) by bitbox.follo.net (8.8.8/8.8.6) id JAA62299 for freebsd-arch@freebsd.org; Mon, 29 Nov 1999 09:25:26 +0100 (MET) Received: from alpo.whistle.com (alpo.whistle.com [207.76.204.38]) by hub.freebsd.org (Postfix) with ESMTP id 621AE152B4 for ; Mon, 29 Nov 1999 00:25:21 -0800 (PST) (envelope-from julian@whistle.com) Received: from current1.whiste.com (current1.whistle.com [207.76.205.22]) by alpo.whistle.com (8.9.1a/8.9.1) with ESMTP id AAA34386; Mon, 29 Nov 1999 00:25:18 -0800 (PST) Date: Mon, 29 Nov 1999 00:25:18 -0800 (PST) From: Julian Elischer To: Peter Jeremy Cc: freebsd-arch@freebsd.org Subject: Re: Which is the truth? (sycalls and traps) (fwd) In-Reply-To: <99Nov29.114712est.40340@border.alcanet.com.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Mon, 29 Nov 1999, Peter Jeremy wrote: > > Though in scheduling a long asleep thread, it's stack may > >be out on swap. You'd need to work out a way of 'pre-faulting' in the > >thread's context so that the scheduler didn't block trying to load it. > >or at least scheduling it in a way that allowed the fault to not be > >charged against the scheduler, but rather against the thread. > > > >The second may actually not be too hard. > > I'm not sure I follow: If a thread dereferences a pointer to a > non-resident page, how does the thread avoid blocking? You don't avoid teh fault, you just make sure that you are already officially "no longer the scheduler", but rather the thread you are waking up, then the kernel can know that it is safe to upcall to the scheduler again. remember, the original topic was "when the UTS get's a pagefault it blocks". In this case if it is no longer the UTS, then it's safe to ask the UTS to schedule something else while the page is being brought in. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message