Sujet : Re: portable proxy collector test...
De : jseigh_es00 (at) *nospam* xemaps.com (jseigh)
Groupes : comp.archDate : 06. Dec 2024, 23:43:33
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vivuml$2k486$1@dont-email.me>
References : 1 2 3
User-Agent : Mozilla Thunderbird
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.