I am new to Linux kernel programming. I am confused by the memory documentation in the WARRANTY chapter.
Overlapping downloads and vaults within a specific CPU will be ordered inside that CPU.
*X = c; d = *X;
The CPU will only issue:
STORE *X = c, d = LOAD *X
And then another example:
It should be assumed that overlapping memory accesses may be combined or dropped.
*A = X; Y = *A;
we can get any of:
STORE *A = X; Y = LOAD *A; STORE *A = Y = X;
They look the same, what's the difference between the two examples?
source share