On Fri, Mar 11, 2022 at 09:00:57AM +1000, David Gwynne wrote:

Hello David,

>> Unfortunately this transformation almost certainly isn't safe: for
>> example, the non-atomic load can return values that were never written by
>> any thread (e.g. due to load/store tearing amongst other fun effects).
> is that true even when care is taken to only use int/long sized variables
> that are naturally aligned? are compilers that pathological now?

Yes and yes, I'm afraid -- though rare, there are real examples of compilers
doing this (pity the poor person who debugs it!). My working guess is that
they'll be increasingly likely to occur as compilers become ever more
aggressive at taking advantage of undefined behaviour.

Jade Alglave et al. did an approachable intro to many (all?) of the horrors
one might observe in the context of the Linux kernel [1], which is worth a
read IMHO.


Laurie

[1] https://lwn.net/Articles/793253/

Reply via email to