Re: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 not defined on aarch64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 29/06/17 15:23, Toebs Douglass wrote:
> On 29/06/17 16:18, Andrew Haley wrote:
>> Well, yeah.  We can only really blame ARM for this: they provided a
>> double-word CAS but no way to define a double-word atomic load which
>> does not also store.  I hesitate to place blame on the ARM architects,
>> a splendid and diligent bunch, but there it is.  I have no idea why
>> LDXP doesn't work as an atomic load, but it does not.
> 
> Actually, I have a bone to pick with them - the instruction to find out
> the ERG size is privileged.  As such, unless you know better, you have
> to assume the worst case of 2048 bytes.  This makes lock-free data
> structure state and element structs huge.

What for?  Just assume that it's a cache line, and if that just happens
to run slowly, so what?  The user has bought the wrong hardware.  And
people who make hardware like that should be punished in the profit
margin...

> It would be enough of a pain to have to make alignment run-time, but you
> could do it if you could get ERG size - *but you can't even get ERG size*.
> 
> Ahhh, face palm, etc.

I think you can blame that one on kernel architects: it should be possible
for them to read the information and tell you.  Do they not?

-- 
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux