From owner-svn-src-user@FreeBSD.ORG Tue May 26 18:52:11 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB8E61065673; Tue, 26 May 2009 18:52:11 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id BDF0B8FC15; Tue, 26 May 2009 18:52:11 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 734AB46B46; Tue, 26 May 2009 14:52:11 -0400 (EDT) Received: from jhbbsd.hudson-trading.com (unknown [209.249.190.8]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 55D998A028; Tue, 26 May 2009 14:52:10 -0400 (EDT) From: John Baldwin To: Kip Macy Date: Tue, 26 May 2009 14:49:51 -0400 User-Agent: KMail/1.9.7 References: <200905222145.n4MLjhm3019802@svn.freebsd.org> <200905261437.49148.jhb@freebsd.org> <3c1674c90905261141n44bc7c24h5b82a2e25b84f1eb@mail.gmail.com> In-Reply-To: <3c1674c90905261141n44bc7c24h5b82a2e25b84f1eb@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200905261449.52153.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Tue, 26 May 2009 14:52:10 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=4.2 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r192604 - in user/kmacy/releng_7_2_fcs/sys: dev/hwpmc sys X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 18:52:12 -0000 On Tuesday 26 May 2009 2:41:03 pm Kip Macy wrote: > ter. > > > > Umm, that doesn't help. =A0Your kthread's main routine is "physically"= =20 located > > in your kld. =A0It needs to get into the text of kthread_exit() before = it is > > safe for your module to unload, and so you have to sleep on the=20 kthread/kproc > > pointer to wait for the wakeup in kthread_exit() to fire. =A0You could = have > > easily used msleep_spin() for this w/o hacking up condvar's to support= =20 spin > > locks too, FWIW. > > >=20 > Good point. >=20 > Which gets to my next question. Why is condvar preferred to msleep / > wakeup for everything BUT spin locks? This seems a bit hackish. Because too many people use spin locks. :) They are really only suitable f= or=20 a limited set of problems, and many of those are for scheduler internals th= at=20 don't use higher level primitives like sleep and wakeup. I can buy that pm= c=20 might be low-level enough to warrant use of a spin lock if you are=20 interfacing with the NMI handler, but in that case I think msleep_spin() is= =20 probably sufficient for what you need. =2D-=20 John Baldwin