Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Feb 2002 16:46:37 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        John Baldwin <jhb@FreeBSD.org>, Seigo Tanimura <tanimura@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/coda coda_venus.c src/sys/compat/linprocfs
Message-ID:  <20020224004637.GO80761@elvis.mu.org>
In-Reply-To: <200202232212.g1NMCI041812@apollo.backplane.com>
References:  <200202232030.g1NKU4m87533@freefall.freebsd.org> <20020223204610.GG80761@elvis.mu.org> <200202232056.g1NKuKf41350@apollo.backplane.com> <20020223212005.GK80761@elvis.mu.org> <200202232212.g1NMCI041812@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Matthew Dillon <dillon@apollo.backplane.com> [020223 14:12] wrote:
> 
> :
> :I've also asked john to implement a sleephold()/sleepdrop() functionaity.
> :
> :the premise is this:
> :
> :As you've noticed there's a bunch of code in sys/kern and sys/vm that
> :has comments to the effect of:
> :   "this shouldn't block, but i'm not sure"
> :
> :Well, since for the most part blocking occurs rarely, what you do is
> :keep a nested count in the proc struct that records weather or not you
> :can sleep.
> :
> :Basically you have a td->td_sleephold that starts at zero, sleephold()
> :will td->td_sleephold++, and sleepdrop() will td->td_sleephold--
> :as well as check for < 0.
> 
>     I'm fairly sure that the only time we can't block occurs while we are
>     holding a leaf mutex.  The MTX_LEAF flag in the thread may be sufficient.
>     After all, why else would you not be able to sleep?

You are an interrupt?

-- 
-Alfred Perlstein [alfred@freebsd.org]
'Instead of asking why a piece of software is using "1970s technology,"
 start asking why software is ignoring 30 years of accumulated wisdom.'
Tax deductible donations for FreeBSD: http://www.freebsdfoundation.org/

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




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