[GIT PULL] locking updates for v5.12

From: Ingo Molnar
Date: Wed Feb 17 2021 - 06:47:59 EST


Linus,

Please pull the latest locking/core git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking-core-2021-02-17

# HEAD: 3765d01bab73bdb920ef711203978f02cd26e4da Merge branch 'for-mingo-lkmm' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into locking/core

These are the v5.12 updates for the locking subsystem:

- Core locking primitives updates:

- Remove mutex_trylock_recursive() from the API - no users left
- Simplify + constify the futex code a bit

- Lockdep updates:

- Teach lockdep about local_lock_t
- Add CONFIG_DEBUG_IRQFLAGS=y debug config option to check for
potentially unsafe IRQ mask restoration patterns. (I.e.
calling raw_local_irq_restore() with IRQs enabled.)
- Add wait context self-tests
- Fix graph lock corner case corrupting internal data structures
- Fix noinstr annotations

- LKMM updates:

- Simplify the litmus tests
- Documentation fixes

- KCSAN updates:

- Re-enable KCSAN instrumentation in lib/random32.c

- Misc fixes:

- Don't branch-trace static label APIs
- DocBook fix
- Remove stale leftover empty file

Thanks,

Ingo

------------------>
Akira Yokosawa (2):
tools/memory-model: Remove redundant initialization in litmus tests
tools/memory-model: Fix typo in klitmus7 compatibility table

Alejandro Colomar (1):
futex: Change utime parameter to be 'const ... *'

Alex Shi (1):
locking/rtmutex: Add missing kernel-doc markup

Boqun Feng (3):
lockdep/selftest: Add wait context selftests
locking/lockdep: Add a skip() function to __bfs()
locking/lockdep: Exclude local_lock_t from IRQ inversions

Jangwoong Kim (1):
futex: Remove unneeded gotos

Marco Elver (2):
kcsan: Rewrite kcsan_prandom_u32_max() without prandom_u32_state()
random32: Re-enable KCSAN instrumentation

Mark Rutland (1):
lockdep: report broken irq restoration

Nikolay Borisov (1):
locking/rwsem: Remove empty rwsem.h

Paul E. McKenney (1):
tools/memory-model: Tie acquire loads to reads-from

Peter Zijlstra (7):
locking/selftests: More granular debug_locks_verbose
locking/lockdep: Mark local_lock_t
locking/lockdep: Clean up check_redundant() a bit
locking/selftests: Add local_lock inversion tests
locking: Add Reviewers
locking/lockdep: Avoid unmatched unlock
lockdep: Noinstr annotate warn_bogus_irq_restore()

Sebastian Andrzej Siewior (2):
locking/mutex: Kill mutex_trylock_recursive()
checkpatch: Don't check for mutex_trylock_recursive()

Steven Rostedt (VMware) (1):
jump_label: Do not profile branch annotations

Sven Schnelle (1):
s390: Use arch_local_irq_{save,restore}() in early boot code


Documentation/admin-guide/kernel-parameters.txt | 11 +-
MAINTAINERS | 2 +
drivers/s390/char/sclp_early_core.c | 4 +-
include/linux/compiler.h | 2 +
include/linux/irqflags.h | 12 +
include/linux/jump_label.h | 12 +-
include/linux/local_lock_internal.h | 5 +-
include/linux/lockdep.h | 15 +-
include/linux/lockdep_types.h | 18 +-
include/linux/mutex.h | 25 --
include/linux/syscalls.h | 8 +-
kernel/futex.c | 13 +-
kernel/kcsan/core.c | 26 +-
kernel/locking/Makefile | 1 +
kernel/locking/irqflag-debug.c | 13 +
kernel/locking/lockdep.c | 186 ++++++++----
kernel/locking/mutex.c | 10 -
kernel/locking/rtmutex.c | 17 +-
kernel/locking/rwsem.h | 0
lib/Kconfig.debug | 8 +
lib/Makefile | 3 -
lib/locking-selftest.c | 334 ++++++++++++++++++++-
scripts/checkpatch.pl | 6 -
tools/memory-model/Documentation/glossary.txt | 12 +-
tools/memory-model/README | 2 +-
.../litmus-tests/CoRR+poonceonce+Once.litmus | 4 +-
.../litmus-tests/CoRW+poonceonce+Once.litmus | 4 +-
.../litmus-tests/CoWR+poonceonce+Once.litmus | 4 +-
.../litmus-tests/CoWW+poonceonce.litmus | 4 +-
.../IRIW+fencembonceonces+OnceOnce.litmus | 5 +-
.../litmus-tests/IRIW+poonceonces+OnceOnce.litmus | 5 +-
.../ISA2+pooncelock+pooncelock+pombonce.litmus | 7 +-
.../litmus-tests/ISA2+poonceonces.litmus | 6 +-
...cerelease+poacquirerelease+poacquireonce.litmus | 6 +-
.../LB+fencembonceonce+ctrlonceonce.litmus | 5 +-
.../LB+poacquireonce+pooncerelease.litmus | 5 +-
.../litmus-tests/LB+poonceonces.litmus | 5 +-
.../MP+fencewmbonceonce+fencermbonceonce.litmus | 5 +-
.../litmus-tests/MP+onceassign+derefonce.litmus | 4 +-
.../MP+polockmbonce+poacquiresilsil.litmus | 5 +-
.../MP+polockonce+poacquiresilsil.litmus | 5 +-
tools/memory-model/litmus-tests/MP+polocks.litmus | 6 +-
.../litmus-tests/MP+poonceonces.litmus | 5 +-
.../MP+pooncerelease+poacquireonce.litmus | 5 +-
.../memory-model/litmus-tests/MP+porevlocks.litmus | 6 +-
.../litmus-tests/R+fencembonceonces.litmus | 5 +-
.../memory-model/litmus-tests/R+poonceonces.litmus | 5 +-
.../S+fencewmbonceonce+poacquireonce.litmus | 5 +-
.../memory-model/litmus-tests/S+poonceonces.litmus | 5 +-
.../litmus-tests/SB+fencembonceonces.litmus | 5 +-
.../litmus-tests/SB+poonceonces.litmus | 5 +-
.../litmus-tests/SB+rfionceonce-poonceonces.litmus | 5 +-
.../litmus-tests/WRC+poonceonces+Once.litmus | 5 +-
.../WRC+pooncerelease+fencermbonceonce+Once.litmus | 5 +-
.../Z6.0+pooncelock+poonceLock+pombonce.litmus | 7 +-
.../Z6.0+pooncelock+pooncelock+pombonce.litmus | 7 +-
...release+poacquirerelease+fencembonceonce.litmus | 6 +-
57 files changed, 617 insertions(+), 294 deletions(-)
create mode 100644 kernel/locking/irqflag-debug.c
delete mode 100644 kernel/locking/rwsem.h