Lines Matching full:plain
33 25. PLAIN ACCESSES AND DATA RACES
933 Plain-coherence: This requires that plain memory accesses
940 "rcu" and "plain-coherence" axioms are specific to the LKMM.
1032 the w-post-bounded relation defined below in the PLAIN ACCESSES AND
2164 PLAIN ACCESSES AND DATA RACES
2171 accesses such as x or y = 0 are simply called "plain" accesses.
2173 Early versions of the LKMM had nothing to say about plain accesses.
2175 by plain accesses are not concurrently read or written by any other
2177 of transformations or optimizations of code containing plain accesses,
2203 But since P0's load from x is a plain access, the compiler may decide
2225 doesn't try to predict all possible outcomes of code containing plain
2238 3. at least one of them is plain,
2350 are plain. Now, although we have not said so explicitly, up to this
2359 plain accesses are a different story; the compiler may combine them,
2361 who knows what else. Seeing a plain access in the source code tells
2369 code would be safe!). For another, it cannot move a plain access past
2387 -- even if some of the accesses are plain. (Of course, the CPU may
2396 smp_rmb() or smp_store_release() apply to plain accesses as well as to
2400 again, now using plain accesses for buf:
2429 machine instructions the compiler generates for the plain
2451 This analysis illustrates how the LKMM deals with plain accesses in
2452 general. Suppose R is a plain load and we want to show that R
2455 X ->xb* E. If E was also a plain access, we would also look for a
2470 issue. When the source code contains a plain store, the compiler is
2471 allowed to put plain loads of the same location into the object code.
2483 For this reason, whenever the LKMM requires a plain store to be
2493 Incidentally, the other tranformation -- augmenting a plain load by
2504 The LKMM includes a second way to pre-bound plain accesses, in
2511 the LKMM says that the marked load of ptr pre-bounds the plain load of
2513 instructions corresponding to the plain load. This is a reasonable
2544 rcu_assign_pointer() performs a store-release, so the plain store to b
2578 Finally, it turns out there is a situation in which a plain write does
2602 Do the plain stores to y race? Clearly not if P1 reads a non-zero
2615 concurrent and there is no race, even though P1's plain store to y
2624 sequence. If W is plain then they also have to be linked by an
2628 sequence, and if W' is plain then they also have to be linked by a
2650 There is one more part of the LKMM related to plain accesses (although
2654 various relation must not contain a cycle) doesn't apply to plain
2656 they don't make sense even for plain accesses.
2659 called the "plain-coherence" axiom because of their resemblance to the
2668 executes before, even if one or both is plain).
2680 This is the extent to which the LKMM deals with plain accesses.
2681 Perhaps it could say more (for example, plain accesses might
2733 Although we said that plain accesses are not linked by the ppo
2735 an address dependency from a marked load R to a plain store W,
2743 Secondly, plain accesses can carry dependencies: If a data dependency
2748 if W' or R' (or both!) are plain.