* [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.11
@ 2020-11-30 19:39 Paul E. McKenney
0 siblings, 0 replies; only message in thread
From: Paul E. McKenney @ 2020-11-30 19:39 UTC (permalink / raw)
To: mingo
Cc: tglx, stern, anna-maria, b00073877, unixbhaskar, foxhlchen,
frederic, houtao1, sh_def, kuba, joe, joel, elver,
mchehab+huawei, neeraju, peterz, sam.hernandez.amador, urezki,
zhouzhouyi, chao, linux-kernel, rcu
Hello, Ingo!
This pull request contains changes for RCU, KCSAN, and LKMM. You can pull
the group using branch for-mingo. Or, if you prefer, you can pull them
separately, using for-mingo-rcu to pull the RCU changes, for-mingo-kcsan
to pull the KCSAN changes, and for-mingo-lkmm to pull the LKMM changes.
The changes are as follows:
1. RCU updates (for-mingo-rcu):
a. Avoid cpuinfo-induced IPI pileups and idle-CPU IPIs.
b. Documentation updates.
c. Miscellaneous fixes. These include a long-awaited fix
for that bug reported by Sebastian Andrzej Siewior, which
has been since pulled into mainline. (But mentioned
here in case you thought that I had forgotten about it.)
d. Lockdep-RCU updates reducing the need for __maybe_unused.
e. Tasks-RCU updates.
f. Torture-test updates.
2. KCSAN updates (for-mingo-kcsan) for selftests, avoiding setting
watchpoints on NULL pointers, and a fix to watchpoint encoding.
3. LKMM updates (for-mingo-lkmm) for documentation along with some
updates to example-code litmus tests.
All of the commits in this pull request have been subjected to subjected
to the kbuild test robot and -next testing, and are available in the
git repository based on 5.10-rc1 at:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo
for you to fetch changes up to 50df51d12c3175573de9c94968639bdd625ec549:
Merge branch 'lkmm.2020.11.06a' into HEAD (2020-11-19 19:38:53 -0800)
----------------------------------------------------------------
Alan Stern (1):
tools: memory-model: Document that the LKMM can easily miss control dependencies
Anna-Maria Behnsen (1):
tools/rcutorture: Fix BUG parsing of console.log
Asif Rasheed (1):
list.h: Update comment to explicitly note circular lists
Bhaskar Chowdhury (1):
tools/nolibc: Fix a spelling error in a comment
Fox Chen (1):
docs/memory-barriers.txt: Fix a typo in CPU MEMORY BARRIERS section
Frederic Weisbecker (1):
rcu: Implement rcu_segcblist_is_offloaded() config dependent
Hou Tao (2):
locktorture: Ignore nreaders_stress if no readlock support
locktorture: Invoke percpu_free_rwsem() to do percpu-rwsem cleanup
Hui Su (1):
docs/rcu: Update the call_rcu() API
Jakub Kicinski (7):
sched: Un-hide lockdep_tasklist_lock_is_held() for !LOCKDEP
rcu: Un-hide lockdep maps for !LOCKDEP
net: Un-hide lockdep_sock_is_held() for !LOCKDEP
net: sched: Remove broken definitions and un-hide for !LOCKDEP
srcu: Use a more appropriate lockdep helper
lockdep: Provide dummy forward declaration of *_is_held() helpers
rcu: Prevent RCU_LOCKDEP_WARN() from swallowing the condition
Joe Perches (1):
rcu/tree: Make struct kernel_param_ops definitions const
Joel Fernandes (Google) (3):
docs: Update RCU's hotplug requirements with a bit about design
rcu/tree: Add a warning if CPU being onlined did not report QS already
rcu/tree: nocb: Avoid raising softirq for offloaded ready-to-execute CBs
Marco Elver (3):
kcsan: selftest: Ensure that address is at least PAGE_SIZE
kcsan: Never set up watchpoints on NULL pointers
kcsan: Fix encoding masks and regain address bit
Mauro Carvalho Chehab (1):
docs: RCU: Requirements.rst: Fix a list block
Neeraj Upadhyay (2):
rcu: Fix single-CPU check in rcu_blocking_is_gp()
rcu: Clarify nocb kthreads naming in RCU_NOCB_CPU config
Paul E. McKenney (44):
tools/memory-model: Move Documentation description to Documentation/README
doc: Present the role of READ_ONCE()
rcutorture: Make preemptible TRACE02 enable lockdep
rcu-tasks: Convert rcu_tasks_wait_gp() for-loop to while-loop
rcutorture: Make grace-period kthread report match RCU flavor being tested
refscale: Bounds-check module parameters
torture: Don't kill gdb sessions
x86/cpu: Avoid cpuinfo-induced IPI pileups
x86/cpu: Avoid cpuinfo-induced IPIing of idle CPUs
locktorture: Track time of last ->writeunlock()
torture: Periodically pause in stutter_wait()
torture: Make torture_stutter() use hrtimer
scftorture: Add an alternative IPI vector
rcuscale: Add RCU Tasks Trace
rcuscale: Avoid divide by zero
torture: Exclude "NOHZ tick-stop error" from fatal errors
rcuscale: Prevent hangs for invalid arguments
refscale: Prevent hangs for invalid arguments
rcutorture: Adjust scenarios SRCU-t and SRCU-u to make kconfig happy
locktorture: Prevent hangs for invalid arguments
torture: Prevent jitter processes from delaying failed run
rcutorture: Prevent hangs for invalid arguments
torture: Force weak-hashed pointers on console log
rcutorture: Make stutter_wait() caller restore priority
torture: Accept time units on kvm.sh --duration argument
rcutorture: Small code cleanups
torture: Allow alternative forms of kvm.sh command-line arguments
scftorture: Add full-test stutter capability
rcutorture: Don't do need_resched() testing if ->sync is NULL
torture: Make kvm-check-branches.sh use --allcpus
rcu-tasks: Make the units of ->init_fract be jiffies
tools/memory-model: Document categories of ordering primitives
tools/memory-model: Add a glossary of LKMM terms
tools/memory-model: Add types to litmus tests
tools/memory-model: Use "buf" and "flag" for message-passing tests
tools/memory-model: Label MP tests' producers and consumers
rcu: Don't invoke try_invoke_on_locked_down_task() with irqs disabled
x86/smpboot: Move rcu_cpu_starting() earlier
rcu: Prevent lockdep-RCU splats on lock acquisition/release
rcu: Do not report strict GPs for outgoing CPUs
srcu: Take early exit on memory-allocation failure
Merge branches 'cpuinfo.2020.11.06a', 'doc.2020.11.06a', 'fixes.2020.11.19b', 'lockdep.2020.11.02a', 'tasks.2020.11.06a' and 'torture.2020.11.06a' into HEAD
Merge branch 'kcsan.2020.11.06a' into HEAD
Merge branch 'lkmm.2020.11.06a' into HEAD
Peter Zijlstra (2):
rcu: Allow rcu_irq_enter_check_tick() from NMI
rcu,ftrace: Fix ftrace recursion
Samuel Hernandez (1):
rcutorture/nolibc: Fix a typo in header file
Uladzislau Rezki (Sony) (1):
rcu/tree: Defer kvfree_rcu() allocation to a clean context
Zhouyi Zhou (1):
rcu: Fix a typo in rcu_blocking_is_gp() header comment
chao (1):
rcu: Panic after fixed number of stalls
.../RCU/Design/Requirements/Requirements.rst | 50 +-
Documentation/RCU/checklist.rst | 7 +
Documentation/RCU/rcu_dereference.rst | 6 +
Documentation/RCU/whatisRCU.rst | 3 +-
Documentation/memory-barriers.txt | 2 +-
arch/x86/kernel/cpu/aperfmperf.c | 16 +-
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 -
arch/x86/kernel/smpboot.c | 1 +
include/linux/kernel.h | 1 +
include/linux/list.h | 2 +-
include/linux/lockdep.h | 6 +
include/linux/rcupdate.h | 11 +-
include/linux/rcupdate_trace.h | 4 +-
include/linux/rcutiny.h | 2 +
include/linux/rcutree.h | 1 +
include/linux/sched/task.h | 2 -
include/net/sch_generic.h | 12 -
include/net/sock.h | 2 -
kernel/kcsan/encoding.h | 20 +-
kernel/kcsan/selftest.c | 3 +
kernel/locking/locktorture.c | 36 +-
kernel/rcu/Kconfig | 20 +-
kernel/rcu/rcu.h | 16 +
kernel/rcu/rcu_segcblist.h | 2 +-
kernel/rcu/rcuscale.c | 37 +-
kernel/rcu/rcutorture.c | 52 +-
kernel/rcu/refscale.c | 11 +-
kernel/rcu/srcutree.c | 6 +-
kernel/rcu/tasks.h | 49 +-
kernel/rcu/tree.c | 200 +++++---
kernel/rcu/tree.h | 2 +
kernel/rcu/tree_plugin.h | 2 +-
kernel/rcu/tree_stall.h | 28 +-
kernel/scftorture.c | 49 +-
kernel/sysctl.c | 11 +
kernel/torture.c | 34 +-
tools/include/nolibc/nolibc.h | 4 +-
tools/memory-model/Documentation/README | 76 +++
.../Documentation/control-dependencies.txt | 258 ++++++++++
tools/memory-model/Documentation/glossary.txt | 172 +++++++
tools/memory-model/Documentation/litmus-tests.txt | 17 +
tools/memory-model/Documentation/ordering.txt | 556 +++++++++++++++++++++
tools/memory-model/README | 22 +-
.../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 | 19 +-
.../litmus-tests/MP+onceassign+derefonce.litmus | 15 +-
.../MP+polockmbonce+poacquiresilsil.litmus | 8 +-
.../MP+polockonce+poacquiresilsil.litmus | 8 +-
tools/memory-model/litmus-tests/MP+polocks.litmus | 20 +-
.../litmus-tests/MP+poonceonces.litmus | 19 +-
.../MP+pooncerelease+poacquireonce.litmus | 19 +-
.../memory-model/litmus-tests/MP+porevlocks.litmus | 20 +-
.../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 +-
.../selftests/rcutorture/bin/console-badness.sh | 3 +-
.../testing/selftests/rcutorture/bin/functions.sh | 1 +
.../selftests/rcutorture/bin/kvm-check-branches.sh | 5 +-
.../rcutorture/bin/kvm-recheck-rcuscale.sh | 2 +-
.../selftests/rcutorture/bin/kvm-test-1-run.sh | 19 +-
tools/testing/selftests/rcutorture/bin/kvm.sh | 29 +-
.../selftests/rcutorture/bin/parse-console.sh | 2 +-
.../selftests/rcutorture/configs/rcu/SRCU-t | 3 +-
.../selftests/rcutorture/configs/rcu/SRCU-u | 3 +-
.../selftests/rcutorture/configs/rcu/TRACE01 | 6 +-
.../selftests/rcutorture/configs/rcu/TRACE02 | 6 +-
.../selftests/rcutorture/configs/rcuscale/CFcommon | 3 +
.../selftests/rcutorture/configs/rcuscale/TRACE01 | 15 +
.../rcutorture/configs/rcuscale/TRACE01.boot | 1 +
89 files changed, 1839 insertions(+), 325 deletions(-)
create mode 100644 tools/memory-model/Documentation/README
create mode 100644 tools/memory-model/Documentation/control-dependencies.txt
create mode 100644 tools/memory-model/Documentation/glossary.txt
create mode 100644 tools/memory-model/Documentation/ordering.txt
create mode 100644 tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01
create mode 100644 tools/testing/selftests/rcutorture/configs/rcuscale/TRACE01.boot
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-11-30 19:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-30 19:39 [GIT PULL tip/core/rcu] RCU, LKMM, and KCSAN commits for v5.11 Paul E. McKenney
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.