On Fri, Dec 11 2020 at 14:19, David Laight wrote:
From: Thomas Gleixner
You can't catch that. If this really becomes an issue you need a sequence counter around it.
Or just two copies of the high word. Provided the accesses are sequenced: writer: load high:low add small_value,high:low store high store low store high_copy reader: load high_copy load low load high if (high != high_copy) low = 0;
And low = 0 is solving what? You need to loop back and retry until it's consistent and then it's nothing else than an open coded sequence count.
Thanks,
tglx