Skip site navigation (1)Skip section navigation (2)
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>