Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: jseigh Newsgroups: comp.arch Subject: Re: Memory ordering Date: Wed, 18 Dec 2024 06:43:43 -0500 Organization: A noiseless patient Spider Lines: 24 Message-ID: References: <-rKdnTO4LdoWXKj6nZ2dnZfqnPWdnZ2d@supernews.com> <5yqdnU9eL_Y_GKv6nZ2dnZfqn_GdnZ2d@supernews.com> <2024Nov15.082512@mips.complang.tuwien.ac.at> <20241115152459.00004c86@yahoo.com> <2024Nov17.161752@mips.complang.tuwien.ac.at> <2024Dec3.100144@mips.complang.tuwien.ac.at> <3aa9f0a3d3dde86193abb1c01e52d03a@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 18 Dec 2024 12:43:43 +0100 (CET) Injection-Info: dont-email.me; posting-host="5eb381f8c7e7484b48c2dc48b6b11c02"; logging-data="2396952"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19d5kuW/aL7/8MdXAULEedR" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:nNw7UhXKdV2bGuUw+ZZxNvEABm4= In-Reply-To: Content-Language: en-US Bytes: 2733 On 12/17/24 15:41, Chris M. Thomasson wrote: > > Agreed. Humm... The CAS is interesting to me. > > atomic_compare_exchange_weak > atomic_compare_exchange_strong > > The weak one can fail spuriously... Akin to LL/SC in a sense? Most likely LL/SC in the implementation. If you are calling cas in a loop, then the weak form will be safe, it will just retry. The strong form is if you are not in a loop and the cas emulation code has extra logic to filter out spurious failures and retry internally. > > atomic_compare_exchange_weak_explicit > atomic_compare_exchange_strong_explicit > > A membar for the success path and one for the failure path. Oh that's > fun. Sometimes I think its better to use relaxed for all of the atomics > and use explicit barriers ala atomic_thread_fence for the order. Well, > that is more in line with the SPARC way of doing things... ;^) > No sure why that is there. Possibly for non loop usages.