| 5c9e0062 | 22-Apr-2025 |
Uladzislau Rezki (Sony) <urezki@gmail.com> |
tools/memory-model/Documentation: Fix SRCU section in explanation.txt
The SRCU read-side critical sections describes the difference between srcu_down_read()/srcu_up_read() and srcu_read_lock()/srcu_
tools/memory-model/Documentation: Fix SRCU section in explanation.txt
The SRCU read-side critical sections describes the difference between srcu_down_read()/srcu_up_read() and srcu_read_lock()/srcu_read_unlock() in a way that a last pair must occur on the same CPU.
This is not true, the srcu_read_unlock() can happen on any CPU, but it must be performed by the same task that invoked srcu_read_lock().
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
show more ...
|
| 730c0a8e | 14-Mar-2025 |
Akira Yokosawa <akiyks@gmail.com> |
tools/memory-model: docs/references: Remove broken link to imgtec.com
MIPS documents are not provided at imgtec.com any more. Get rid of useless link.
Signed-off-by: Akira Yokosawa <akiyks@gmail.co
tools/memory-model: docs/references: Remove broken link to imgtec.com
MIPS documents are not provided at imgtec.com any more. Get rid of useless link.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Andrea Parri <parri.andrea@gmail.com>
show more ...
|
| f0a83980 | 14-Mar-2025 |
Akira Yokosawa <akiyks@gmail.com> |
tools/memory-model: docs/ordering: Fix trivial typos
Fix trivial typos including:
- Repeated "a call to" - Inconsistent forms of referencing functions of rcu_dereference() and rcu_assign_po
tools/memory-model: docs/ordering: Fix trivial typos
Fix trivial typos including:
- Repeated "a call to" - Inconsistent forms of referencing functions of rcu_dereference() and rcu_assign_pointer() - Past tense used in describing normal behavior
and other minor ones.
[ paulmck: Wordsmith plus recent LWN RCU API URL. ]
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Andrea Parri <parri.andrea@gmail.com>
show more ...
|
| 366b88f6 | 14-Mar-2025 |
Akira Yokosawa <akiyks@gmail.com> |
tools/memory-model: docs/simple.txt: Fix trivial typos
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Andrea Parri <parri.andrea@gmai
tools/memory-model: docs/simple.txt: Fix trivial typos
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Acked-by: Andrea Parri <parri.andrea@gmail.com>
show more ...
|
| a2bfbf84 | 25-Feb-2025 |
Akira Yokosawa <akiyks@gmail.com> |
tools/memory-model: glossary.txt: Fix indents
There are a couple of inconsistent indents around code/literal blocks. Adjust them to make this file easier to parse.
Signed-off-by: Akira Yokosawa <ak
tools/memory-model: glossary.txt: Fix indents
There are a couple of inconsistent indents around code/literal blocks. Adjust them to make this file easier to parse.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
show more ...
|
| dcc51978 | 05-Nov-2024 |
Jonas Oberhauser <jonas.oberhauser@huaweicloud.com> |
tools/memory-model: Distinguish between syntactic and semantic tags
Not all annotated accesses provide the semantics their syntactic tags would imply. For example, an 'acquire tag on a write does no
tools/memory-model: Distinguish between syntactic and semantic tags
Not all annotated accesses provide the semantics their syntactic tags would imply. For example, an 'acquire tag on a write does not imply that the write is finally in the Acquire set and provides acquire ordering.
To distinguish in those cases between the syntactic tags and actual sets, we capitalize the former, so 'ACQUIRE tags may be present on both reads and writes, but only reads will appear in the Acquire set.
For tags where the two concepts are the same we do not use specific capitalization to make this distinction.
Reported-by: Boqun Feng <boqun.feng@gmail.com> Signed-off-by: Jonas Oberhauser <jonas.oberhauser@huaweicloud.com> Reviewed-by: Boqun Feng <boqun.feng@gmail.com> Tested-by: Boqun Feng <boqun.feng@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Tested-by: Akira Yokosawa <akiyks@gmail.com> # herdtools7.7.58
show more ...
|
| b9a6e87a | 25-Jun-2024 |
Akira Yokosawa <akiyks@gmail.com> |
tools/memory-model: simple.txt: Fix stale reference to recipes-pairs.txt
There has never been recipes-paris.txt at least since v5.11. Fix the typo.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
tools/memory-model: simple.txt: Fix stale reference to recipes-pairs.txt
There has never been recipes-paris.txt at least since v5.11. Fix the typo.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Acked-by: Andrea Parri <parri.andrea@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
show more ...
|
| 9bc931e9 | 25-Jun-2024 |
Akira Yokosawa <akiyks@gmail.com> |
tools/memory-model: Add locking.txt and glossary.txt to README
locking.txt and glossary.txt have been in LKMM's documentation for quite a while.
Add them in README's introduction of docs and the li
tools/memory-model: Add locking.txt and glossary.txt to README
locking.txt and glossary.txt have been in LKMM's documentation for quite a while.
Add them in README's introduction of docs and the list of docs at the bottom. Add access-marking.txt in the former as well.
Signed-off-by: Akira Yokosawa <akiyks@gmail.com> Acked-by: Andrea Parri <parri.andrea@gmail.com> Cc: Marco Elver <elver@google.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
show more ...
|
| 520c637b | 05-Jun-2024 |
Paul E. McKenney <paulmck@kernel.org> |
tools/memory-model: Add access-marking.txt to README
Given that access-marking.txt exists, this commit makes it easier to find.
Reported-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E.
tools/memory-model: Add access-marking.txt to README
Given that access-marking.txt exists, this commit makes it easier to find.
Reported-by: Akira Yokosawa <akiyks@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
show more ...
|
| 9ba7d3b3 | 02-Dec-2022 |
Jonas Oberhauser <jonas.oberhauser@huawei.com> |
tools: memory-model: Make plain accesses carry dependencies
As reported by Viktor, plain accesses in LKMM are weaker than accesses to registers: the latter carry dependencies but the former do not.
tools: memory-model: Make plain accesses carry dependencies
As reported by Viktor, plain accesses in LKMM are weaker than accesses to registers: the latter carry dependencies but the former do not. This is exemplified in the following snippet:
int r = READ_ONCE(*x); WRITE_ONCE(*y, r);
Here a data dependency links the READ_ONCE() to the WRITE_ONCE(), preserving their order, because the model treats r as a register. If r is turned into a memory location accessed by plain accesses, however, the link is broken and the order between READ_ONCE() and WRITE_ONCE() is no longer preserved.
This is too conservative, since any optimizations on plain accesses that might break dependencies are also possible on registers; it also contradicts the intuitive notion of "dependency" as the data stored by the WRITE_ONCE() does depend on the data read by the READ_ONCE(), independently of whether r is a register or a memory location.
This is resolved by redefining all dependencies to include dependencies carried by memory accesses; a dependency is said to be carried by memory accesses (in the model: carry-dep) from one load to another load if the initial load is followed by an arbitrarily long sequence alternating between stores and loads of the same thread, where the data of each store depends on the previous load, and is read by the next load.
Any dependency linking the final load in the sequence to another access also links the initial load in the sequence to that access.
More deep details can be found in this LKML discussion:
https://lore.kernel.org/lkml/d86295788ad14a02874ab030ddb8a6f8@huawei.com/
Reported-by: Viktor Vafeiadis <viktor@mpi-sws.org> Signed-off-by: Jonas Oberhauser <jonas.oberhauser@huawei.com> Reviewed-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
show more ...
|