Date: Sun, 19 Aug 2007 22:44:38 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Jeff Roberson <jroberson@chesapeake.net> Cc: Pawel Jakub Dawidek <pjd@freebsd.org>, freebsd-arch@freebsd.org Subject: Re: Lockless uidinfo. Message-ID: <20070819223351.R1132@besplex.bde.org> In-Reply-To: <20070819004949.U568@10.0.0.1> References: <20070818120056.GA6498@garage.freebsd.pl> <20070818220756.GH6498@garage.freebsd.pl> <20070819142214.O34036@delplex.bde.org> <20070819004949.U568@10.0.0.1>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 19 Aug 2007, Jeff Roberson wrote: > On Sun, 19 Aug 2007, Bruce Evans wrote: >> atomic_*long() shouldn't exist (and doesn't exist in my version) since >> longs should actually be long (twice as long as registers) and thus >> especially epensive to lock. > > Well unfortunately this is not how the compiler implements them on the > architectures that we support. So in this case long is 32bit on 32bit > machines and 64bit on 64bit machines and as such requires each architecture > to treat them specially. I don't think it's unreasonable to add an > atomic_fetchadd_long() that conforms to the definition of long that is > actually in use. The compiler has nothing to do with this. The implementation is FreeBSD's and it is poor, like I said. [Context lost to top posting] Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070819223351.R1132>