From owner-cvs-all Thu Jul 5 12:37:25 2001 Delivered-To: cvs-all@freebsd.org Received: from anchor-post-30.mail.demon.net (anchor-post-30.mail.demon.net [194.217.242.88]) by hub.freebsd.org (Postfix) with ESMTP id 6CBDE37B407; Thu, 5 Jul 2001 12:37:16 -0700 (PDT) (envelope-from dfr@nlsystems.com) Received: from [62.49.251.130] (helo=herring.nlsystems.com) by anchor-post-30.mail.demon.net with esmtp (Exim 2.12 #1) id 15IExx-000IW0-0U; Thu, 5 Jul 2001 20:39:09 +0100 Received: from herring (herring [10.0.0.2]) by herring.nlsystems.com (8.11.2/8.11.2) with ESMTP id f65JZw731998; Thu, 5 Jul 2001 20:35:58 +0100 (BST) (envelope-from dfr@nlsystems.com) Date: Thu, 5 Jul 2001 20:35:58 +0100 (BST) From: Doug Rabson To: Alfred Perlstein Cc: Matthew Jacob , John Baldwin , Matt Dillon , , , Jake Burkholder Subject: Re: cvs commit: src/sys/sys systm.h condvar.h src/sys/kern kern_ In-Reply-To: <20010705131757.E929@sneakerz.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Thu, 5 Jul 2001, Alfred Perlstein wrote: > * Doug Rabson [010705 11:56] wrote: > > > > Right. I'm not actually arguing for the existence of mwakeup() and > > friends. I can't yet see any race window that they close when compared to > > a code sequence which calls wakeup() followed by mtx_unlock(). > > It's not a race, it's just an optimization to avoid this happening. > > Thread A locks a mutex, > Thread A determines it must wait for an event on the object protected > by the mutex and calls msleep(), > Thread B locks the mutex, > Thread B fiddles a structure and calls wakeup on it to signal > waiting 'A' that it can proceed. > > At this point there may be preemption, if Thread A now runs, it will > immediately block on the mutex again because B hasn't released it. > > This is avoided with mwakeup(). > > However, I'm not much of a fan of wakeup() being a premption point. I think the main argument here is that there is not enough information here to justify this particular optimisation. Lets wait until the implementation is nearer to being finished before worrying about this kind of micro-optimisation. -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message