On Mar 11, 2026, Jonathan Wakely <[email protected]> wrote: > On Wed, 11 Mar 2026 at 10:56, Alexandre Oliva <[email protected]> wrote: >> >> On Mar 11, 2026, Jonathan Wakely <[email protected]> wrote: >> >> > On Wed, 11 Mar 2026, 05:29 Alexandre Oliva, <[email protected]> wrote: >> >> >> >> compare_exchange_weak is allowed to fail spuriously, and we're >> >> actually hitting such spurious failures quite often on ppc-vx7r2, >> >> presumably when random interrupts hit between ll and sc. >> >> >> >> Tolerate one such failure, hopefully that will suffice. >> >> > This is a bit of a problem, because we can't tell if the padding was >> > cleared or not. If it was not clear, the first compare_exchange_weak would >> > clear it, and the refund would succeed. But we want the test to fail in >> > that case. >> >> Erhm... My understanding is that, when it returns false, no memory is >> changed, so the second attempt would start from exactly the same state >> as the first.
> "Remarks: A weak compare-and-exchange operation may fail spuriously. > That is, even when the contents of memory referred to by expected and > ptr are equal, it may return false and store back to expected the same > memory contents that were originally there." > So `expected` is updated on a spurious failure, even if that doesn't > change any bits. Yeah, but if it stores back what was there to begin with, how can that be a problem? Is there any reason to expect that "store back [of] the same memory contents" to not actually mean that, and end up messing with padding bits? Anyhow, your near-rewrite of the test is also passing consistently. I suspect it's not just because we're no longer likely to get the timing just right for an interrupt to cause a spurious failure. I needed a few tens of retries to hit the problem, now I'm up to 500 without any hits. -- Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/ Free Software Activist FSFLA co-founder GNU Toolchain Engineer More tolerance and less prejudice are key for inclusion and diversity. Excluding neuro-others for not behaving ""normal"" is *not* inclusive!
