Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: jseigh Newsgroups: comp.arch Subject: Re: Memory ordering Date: Sun, 17 Nov 2024 09:03:06 -0500 Organization: A noiseless patient Spider Lines: 18 Message-ID: References: <-rKdnTO4LdoWXKj6nZ2dnZfqnPWdnZ2d@supernews.com> <5yqdnU9eL_Y_GKv6nZ2dnZfqn_GdnZ2d@supernews.com> <2024Nov15.082512@mips.complang.tuwien.ac.at> <20241115152459.00004c86@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 17 Nov 2024 15:03:07 +0100 (CET) Injection-Info: dont-email.me; posting-host="c88d475acb29efeecee286f1dfc3b08d"; logging-data="708651"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19xHjdFGx+15cdDwU+/Eim+" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:7esAP8zP6CCl5DmsNXagVFO3sqU= In-Reply-To: Content-Language: en-US Bytes: 2185 On 11/16/24 16:21, Chris M. Thomasson wrote: > Fwiw, in C++ std::memory_order_consume is useful for traversing a node > based stack of something in RCU. In most systems it only acts like a > compiler barrier. On the Alpha, it must emit a membar instruction. Iirc, > mb for alpha? Cannot remember that one right now. That got deprecated. Too hard for compilers to deal with. It's now same as memory_order_acquire. Which brings up an interesting point. Even if the hardware memory memory model is strongly ordered, compilers can reorder stuff, so you still have to program as if a weak memory model was in effect. Or maybe disable reordering or optimization altogether for those target architectures. Joe Seigh