[PATCH memory-model 0/14] Updates to the formal memory model

From: Paul E. McKenney
Date: Mon Jul 16 2018 - 14:03:29 EST


Hello!

This series contains updates to the Linux kernel's formal memory model
in tools/memory-model, along with corresponding changes in documentation
and Linux-kernel code. These patches are ready for inclusion into -tip.

1. Add a litmus test for full multi-copy atomicity.

2. Fix the name of the ISA2+pooncelock+pooncelock+pombonce litmus test.

3. Add Daniel Lustig as an LKMM reviewer, with focus on RISC-V,
courtesy of Palmer Dabbelt.

4. Update Korean translation to fix broken DMA vs. MMIO ordering
example, courtesy of SeongJae Park with edits suggested by
Byungchul Park.

5-6. Remove the now-obsolete ACCESS_ONCE() from recipes and the model
itself, courtesy of Mark Rutland.

7. Make regression-test scripts executable.

8. Describe atomic_set as a write operation, courtesy of Jonathan
Neuschäfer.

9. Add informal LKMM documentation to MAINTAINERS.

10. Use smp_mb() in wake_woken_function(), courtesy of Andrea Parri.

11. Clarify requirements for smp_mb__after_spinlock(), courtesy of
Andrea Parri.

12. Update wake_up() and friends' memory-barrier guarantees,
courtesy of Andrea Parri.

13. Fix "smb_wmb()" typo (should be "smp_wmb()"), courtesy of
Yauheni Kaliuta.

14. Rename litmus tests to comply to norm7, courtesy of Andrea Parri.

Thanx, Paul

------------------------------------------------------------------------

Documentation/core-api/atomic_ops.rst | 2
Documentation/memory-barriers.txt | 43 +++---
Documentation/translations/ko_KR/memory-barriers.txt | 22 +--
MAINTAINERS | 6
include/linux/sched.h | 4
include/linux/spinlock.h | 53 +++++--
kernel/sched/completion.c | 8 -
kernel/sched/core.c | 71 ++++------
kernel/sched/wait.c | 55 +++----
tools/memory-model/Documentation/explanation.txt | 2
tools/memory-model/Documentation/recipes.txt | 12 -
tools/memory-model/README | 20 +-
tools/memory-model/linux-kernel.bell | 2
tools/memory-model/litmus-tests/IRIW+fencembonceonces+OnceOnce.litmus | 2
tools/memory-model/litmus-tests/ISA2+pooncelock+pooncelock+pombonce.litmus | 2
tools/memory-model/litmus-tests/LB+fencembonceonce+ctrlonceonce.litmus | 2
tools/memory-model/litmus-tests/MP+fencewmbonceonce+fencermbonceonce.litmus | 2
tools/memory-model/litmus-tests/R+fencembonceonces.litmus | 2
tools/memory-model/litmus-tests/README | 25 ++-
tools/memory-model/litmus-tests/S+fencewmbonceonce+poacquireonce.litmus | 2
tools/memory-model/litmus-tests/SB+fencembonceonces.litmus | 2
tools/memory-model/litmus-tests/SB+rfionceonce-poonceonces.litmus | 32 ++++
tools/memory-model/litmus-tests/WRC+pooncerelease+fencermbonceonce+Once.litmus | 2
tools/memory-model/litmus-tests/Z6.0+pooncerelease+poacquirerelease+fencembonceonce.litmus | 2
tools/memory-model/scripts/checkalllitmus.sh | 2
tools/memory-model/scripts/checklitmus.sh | 2
26 files changed, 223 insertions(+), 156 deletions(-)