From owner-freebsd-arch Thu Mar 28 14:37:34 2002 Delivered-To: freebsd-arch@freebsd.org Received: from mail14.speakeasy.net (mail14.speakeasy.net [216.254.0.214]) by hub.freebsd.org (Postfix) with ESMTP id 14DE937B417 for ; Thu, 28 Mar 2002 14:37:11 -0800 (PST) Received: (qmail 13201 invoked from network); 28 Mar 2002 22:37:09 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender ) by mail14.speakeasy.net (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for ; 28 Mar 2002 22:37:09 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.11.6/8.11.6) with ESMTP id g2SMbtv97683; Thu, 28 Mar 2002 17:37:55 -0500 (EST) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.2 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: Thu, 28 Mar 2002 17:37:11 -0500 (EST) From: John Baldwin To: Julian Elischer Subject: Re: SMP safe reference counting Cc: arch@FreeBSD.ORG, Bosko Milekic Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On 28-Mar-2002 Julian Elischer wrote: > > > On Thu, 28 Mar 2002, Bosko Milekic wrote: > >> >> On Thu, Mar 28, 2002 at 09:45:02AM -0500, John Baldwin wrote: >> > >> > On 28-Mar-2002 Bosko Milekic wrote: >> > > >> > > I don't think we really need a ref. count API, per-se. I can think of >> > > several places that may need to do ref. counting but wouldn't want to >> > > do it with a bus-locked instruction because their reference counter(s) >> > > are already protected by an existing mutex. >> > > >> > > -Bosko >> > >> > Those places wouldn't use the API then I think. However, this would be >> > good >> > for things like ucreds, pargs, uidinfos and others. >> >> Yeah, absolutely. I was just pointing out that there's little point >> in having a reference counting API when a lot of the reference counting >> implementations won't be using it. > > but a lot would.. and that's GOOD. > > John, can you put your sugfgested API up again? > I remember it would work but was (in my mind) 'different'. > I didn't think it was intuative but at least get it up for discussion.. > > (I posted my suggested API a few mails ago.. I'm sure it too has > weaknesses though) It's old but it's been at ~jhb/paches/refcount.patch for about an eternity right now. The changes I would make to it are that I would change refcount_drop() (or release or whatever it is called) to return the current value rather than a boolean about the value being 0 or not. Also, once atomic_fetchadd() is done, it will change a fair bit. There would just be a MI header, no MD stuff, and we woudln't use a mutex for the debug version that uses asserts. > Julian -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message