Date: Tue, 28 May 2002 23:36:23 -0700 From: Terry Lambert <tlambert2@mindspring.com> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: Peter Wemm <peter@wemm.org>, Richard Wenninger <richard@richardw.net>, current@FreeBSD.org Subject: Re: UMA lock Message-ID: <3CF476E7.D465D5C3@mindspring.com> References: <10399.1022653079@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp wrote: > In message <20020529061540.88CD6380A@overcee.wemm.org>, Peter Wemm writes: > >As you said, _sleeping_ is the problem. M_WAITOK means "you may sleep if > >you like". ie: it is a time bomb waiting for the right low memory condition > >which will then explode with a 100% authentic crash or lock up. > > > >Pretend it said M_SLEEPOK instead of M_WAITOK. > > Uhm, I'm actually seeing the opposite behaviour as well: after I > changed the md(4) driver to use M_NOWAIT I still see malloc/zalloc > sleeping... I'm with Poul on this one, Peter: M_WAITOK doesn't mean what you think it means: it's doesn't mean tsleep may be called, and M_NOWAIT doesn't mean tsleep() _won't_ be called, in practice. It's either incredibly badly named, or it's incredibly badly implemented -- I would argue the latter, actually, since even if it's completely orthogonal, you're screwed because it means you have two call conversion systems, without a WITNESS intersection to detect deadly embraces. 8-(. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CF476E7.D465D5C3>