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>
