From owner-cvs-all Wed Jul 4 11:15: 9 2001 Delivered-To: cvs-all@freebsd.org Received: from mail5.speakeasy.net (mail5.speakeasy.net [216.254.0.205]) by hub.freebsd.org (Postfix) with SMTP id 5D5C437B407 for ; Wed, 4 Jul 2001 11:14:49 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 14786 invoked from network); 4 Jul 2001 18:14:48 -0000 Received: from unknown (HELO laptop.baldwin.cx) ([64.81.54.73]) (envelope-sender ) by mail5.speakeasy.net (qmail-ldap-1.03) with SMTP for ; 4 Jul 2001 18:14:48 -0000 Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Wed, 04 Jul 2001 11:14:46 -0700 (PDT) From: John Baldwin To: Matthew Jacob Subject: Re: cvs commit: src/sys/sys systm.h condvar.h src/sys/kern kern_ Cc: Jake Burkholder , cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org 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 04-Jul-01 Matthew Jacob wrote: >> but I can see the state of the subsytem being altered by another CPU >> before the wakeup is delivered (since the lock is unlocked and we >> may preempt on lock release and thus alter the state of the locked >> subsytem before coming back to the original thread and doing the >> wakeup) resulting in possibly bogus wakeups being sent. Yuck. > > Sigh. Note that the preemption on lock release isn't the only way, interrupts can come in at any inopportune time and screw things up. >> > I can see that it's possible you could get contention if the cv_signal >> > or wakeup causes a reschedule on another CPU right away. Is there any >> > empirical measurements showing this happening? >> >> If a CPU is idle this can easily happen. In a fully preeemptive >> kernel where wakeup (well, setrunqueue) will switch to the new >> process that it just woke up if it is higher priority than the >> current one it can easily happen as well. > > Well, it seemed like creeping featurism, but it is probably okay. > Although it *does* seem to me that if you do: > > wakeup > unlock > > in your code, I find it hard to believe that you will contention *after* > the wakeup but before the unlock except in the pre-emption case. That's > why I asked for some empirical data. You will get it in the SMP case as well. Preemption and SMP are the same environment. > -matt -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message