Messages in this thread | | | Date | Mon, 11 Oct 2021 07:07:08 -0400 | From | "Michael S. Tsirkin" <> | Subject | data dependency naming inconsistency |
| |
Hello Paul, all! I've been reading with interest Paul's posts about Rust interactions with LKMM https://paulmck.livejournal.com/63316.html and in particular it states: A data dependency involves a load whose return value directly or indirectly determine the value stored by a later store, which results in the load being ordered before the store.
This matches the perf book: A data dependency occurs when the value returned by a load instruction is used to compute the data stored by a later store instruction.
however, memory-barriers.txt states:
A data dependency barrier is a partial ordering on interdependent loads only; it is not required to have any effect on stores, independent loads or overlapping loads.
It also says: A data-dependency barrier is not required to order dependent writes because the CPUs that the Linux kernel supports don't do writes until they are certain (1) that the write will actually happen, (2) of the location of the write, and (3) of the value to be written.
so the result it the same: writes are ordered without a barrier, reads are ordered by a barrier.
However, it would seem that a bit more consistency in naming won't hurt.
Thanks,
-- MST
| |