Date: Fri, 21 May 2004 13:45:32 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Julian Elischer <julian@elischer.org> Cc: arch@FreeBSD.org Subject: Re: atomic reference counting primatives. Message-ID: <20040521133502.Y4135@gamplex.bde.org> In-Reply-To: <Pine.BSF.4.21.0405201340590.72391-100000@InterJet.elischer.org> References: <Pine.BSF.4.21.0405201340590.72391-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 20 May 2004, Julian Elischer wrote: > This has been raised before but I've come across uses for it again and > again so I'm raising it again. > JHB once posted some atomic referenc counting primatives. (Do you still > have them John?) > Alfred once said he had soem somewhere too, and other s have commentted > on this before, but we still don't seem to have any. > > every object is reference counted with its own code and > sometimes it's done poorly. > > Some peiople indicated that there are cases where a generic refcounter > can not be used and usd this as a reason to not have one at all. Now we know that a generic reference counter would be even better for pessimizing FreeBSD than was first thought, since on P4's locked instructions are very expensive. See the thread about bridging. A pessimization by a factor of 2 or so has been achieved using little more than normal locking, since there are lots of lock/unlock pairs per packet and each lock and unlock takes hundreds (?) of cycles for the bus lock part and very little else. General atomic counters of any sort would take about half as lock as a lock/unlock pair (since they only need 1 lock, but would always needed it even if running in a locked region). The pessimizations from them could be broken using algorithms that don't need fine-grained locking. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040521133502.Y4135>
