Deutsch English Français Italiano |
<vbjgni$1rat4$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> Newsgroups: comp.arch Subject: Re: arm ldxr/stxr vs cas Date: Sat, 7 Sep 2024 23:37:38 -0700 Organization: A noiseless patient Spider Lines: 42 Message-ID: <vbjgni$1rat4$2@dont-email.me> References: <vb4sit$2u7e2$1@dont-email.me> <07d60bd0a63b903820013ae60792fb7a@www.novabbs.org> <vbc4u3$aj5s$1@dont-email.me> <898cf44224e9790b74a0269eddff095a@www.novabbs.org> <vbd4k1$fpn6$1@dont-email.me> <vbd91c$g5j0$1@dont-email.me> <vbflk4$uc98$1@dont-email.me> <352e80684e75a2c0a298b84e4bf840c4@www.novabbs.org> <vbhpv0$1de2c$1@dont-email.me> <vbimfd$1jbai$1@dont-email.me> <vbimo3$1jbai$2@dont-email.me> <vbimsj$1jb9v$1@dont-email.me> <7ca6928a45e4cae89ba50a4623809d1c@www.novabbs.org> <vbjgiq$1rat4$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 08 Sep 2024 08:37:38 +0200 (CEST) Injection-Info: dont-email.me; posting-host="d44d7012c3ec9d16fb2fdce73058c980"; logging-data="1944484"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18lk1g7Vp5q311MfSvEc9HJhgetModXyqM=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:nrtQZtS/WVD2GZxp0UxrCHEsxco= In-Reply-To: <vbjgiq$1rat4$1@dont-email.me> Content-Language: en-US Bytes: 3184 On 9/7/2024 11:35 PM, Chris M. Thomasson wrote: > On 9/7/2024 5:59 PM, MitchAlsup1 wrote: >> On Sat, 7 Sep 2024 23:16:35 +0000, Chris M. Thomasson wrote: >> >>> On 9/7/2024 4:14 PM, Chris M. Thomasson wrote: >>> [...] >>>> When I am using CAS I don't really expect it to fail willy nilly >>>> even if >>>> the comparands are still the same. Weak vs Strong. Still irks me a bit. >>>> ;^) >>> >>> There are algorithms out there, usually state machines that depend on >>> strong cas. When a CAS fails, it depends on it failing because the >>> comparands were actually different... >> >> Leading to ABA failures:: >> >> Do you really want the following CAS to succeed ?? >> >> LD R19,[someMemoryValue] >> .. >> interrupt delays program execution for 1 week >> .. >> CAS R17,R19,[someMemoryLocation] >> >> Given that the someMemoryLocation is accessible to other programs >> while tis one is sleeping ?? >> >> Thus, it seems reasonable to fail a CAS when one cannot determine >> if the memory location has been changed and changed back in the >> mean time. > > ABA, well that can happen with CAS and certain algorithms that use them. > The good ol' version counter is pretty nice, but it still can fail. 64 > bit words, 128 bit CAS. Loads to boot... ;^) Actually, I think Joe > mentioned something interesting about CAS a long time ago wrt IBM... > Candy Cane Striped books (Joe do you remember?) about a way to avoid > live lock and failing in the os. I think Windows has some like it with > their SList and SEH? Iirc, Windows might have something in the kernel for SLists... Not sure about InterlockedCompareExchange...