Sujet : Re: portable proxy collector test...
De : chris.m.thomasson.1 (at) *nospam* gmail.com (Chris M. Thomasson)
Groupes : comp.archDate : 08. Dec 2024, 04:45:15
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vj34oa$3eaf4$2@dont-email.me>
References : 1 2 3 4
User-Agent : Mozilla Thunderbird
On 12/6/2024 2:43 PM, jseigh wrote:
On 12/6/24 16:12, Chris M. Thomasson wrote:
On 12/6/2024 11:55 AM, Brett wrote:
Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote:
I am wondering if anybody can try to compile and run this C++11 code of
mine for a portable word-based proxy collector, a sort of poor mans RCU,
on an ARM based system? I don't have access to one. I am interested in
the resulting output.
>
https://godbolt.org
>
https://pastebin.com/raw/CYZ78gVj
(raw text link, no ads... :^)
[...]
>
It seems that all of the atomics are LDREX/STREX wrt fetch_add/sub . Even with relaxed memory order. Are the LDREX/STREX similar to the LOCK prefix on an x86/64?
>
https://godbolt.org/z/EPGYWve71
>
It has loops for this in the ASM code. Adding a loop in there can change things from wait-free to lock-free. Humm...
>
Which compiler did you choose. armv8? Try ARM64.
The newer arms have new atomics
cas and atomic fetch ops.
LDREX/STREX is the older load store reserved.
On the newer stuff it's ldxr/stxr not ldrex/strex.
Oh shit. The arm version is 7 over on my GodBolt links!