Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 8 Sep 2000 10:40:58 +0930
From:      Greg Lehey <grog@lemis.com>
To:        Christopher Stein <stein@eecs.harvard.edu>
Cc:        freebsd-fs@FreeBSD.ORG
Subject:   Re: splbio() in buf_daemon()
Message-ID:  <20000908104058.M83632@wantadilla.lemis.com>
In-Reply-To: <Pine.OSF.4.20.0009072058110.2185-100000@wally>; from stein@eecs.harvard.edu on Thu, Sep 07, 2000 at 09:03:04PM -0400
References:  <Pine.OSF.4.20.0009072058110.2185-100000@wally>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday,  7 September 2000 at 21:03:04 -0400, Christopher Stein wrote:
>
> Hello,
>
> I am checking out the bufdaemon code in kern/vfs_bio.c
> One of the first thing the bufdaemon does is splbio()
> then promptly enters into a for (;;) loop, potentially
> waiting in kproc_suspend_loop(). Where does it lower
> the cpu interrupt level so block I/O interrupts will be
> received and the system can function??

In kproc_suspend_loop:

void
kproc_suspend_loop(struct proc *p)
{
	while (SIGISMEMBER(p->p_siglist, SIGSTOP)) {
		wakeup((caddr_t)&p->p_siglist);
		tsleep((caddr_t)&p->p_siglist, PPAUSE, "kpsusp", 0);
	}
}

tsleep() saves and releases the spl().  wakeup() then sets it again.
Note that this has already gone away in SMPng; spl calls are now
dummies.

Greg
--
Finger grog@lemis.com for PGP public key
See complete headers for address and phone numbers


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000908104058.M83632>