Hello, Linus, My level of resentment [1] towards these branches rose more quickly than anticipated, so once the merge window opens please pull the latest RCU git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git tags/rcu.2022.03.13a # HEAD: d5578190bed3d110203e3b6b29c5a7a39d51c6c0 Merge branches 'exp.2022.02.24a', 'fixes.2022.02.14a', 'rcu_barrier.2022.02.08a', 'rcu-tasks.2022.02.08a', 'rt.2022.02.01b', 'torture.2022.02.01b' and 'torturescript.2022.02.08a' into HEAD (2022-02-24 09:38:46 -0800) RCU changes for this cycle were: exp.2022.02.24a: Contains a fix for idle detection from Neeraj Upadhyay and missing access marking detected by KCSAN. fixes.2022.02.14a: Miscellaneous fixes. rcu_barrier.2022.02.08a: Reduces coupling between rcu_barrier() and CPU-hotplug operations, so that rcu_barrier() no longer needs to do cpus_read_lock(). This may also someday allow system boot to bring CPUs online concurrently. rcu-tasks.2022.02.08a: Enable more aggressive movement to per-CPU queueing when reacting to excessive lock contention due to workloads placing heavy update-side stress on RCU tasks. rt.2022.02.01b: Improvements to RCU priority boosting, including changes from Neeraj Upadhyay, Zqiang, and Alison Chaiken. torture.2022.02.01b: Various fixes improving test robustness and debug information. torturescript.2022.02.08a: Add tests for SRCU size transitions, further compress torture.sh build products, and improve debug output. There is a merge conflict between the following commits that was located by -next testing: 6a2c1d450a6a3 ("rcu: Replace cpumask_weight with cpumask_empty where appropriate") 04d4e665a6090 ("sched/isolation: Use single feature type while referring to housekeeping cpumask") Mark Brown (filling in for Stephen Rothwell) proposed a resolution [2] that passes rcutorture testing. That resolution is also available in the -rcu tree at branch merge.2022.03.15a. [1] https://lore.kernel.org/all/CAHk-=wjEVLfoypyZHwdLjh3vX_BSJO1JJBjha2XgcghSX=sdgw@xxxxxxxxxxxxxx/ [2] https://lore.kernel.org/lkml/20220221181718.453295-1-broonie@xxxxxxxxxx/ ---------------------------------------------------------------- Alison Chaiken (4): rcu: Move kthread_prio bounds-check to a separate function rcu: Make priority of grace-period thread consistent rcu: Elevate priority of offloaded callback threads rcu: Update documentation regarding kthread_prio cmdline parameter David Woodhouse (2): rcu: Kill rnp->ofl_seq and use only rcu_state.ofl_lock for exclusion rcu: Add mutex for rcu boost kthread spawning and affinity setting Ingo Molnar (2): rcu: Uninline multi-use function: finish_rcuwait() rcu: Remove __read_mostly annotations from rcu_scheduler_active externs Neeraj Upadhyay (3): rcu/exp: Fix check for idle context in rcu_exp_handler rcu/nocb: Handle concurrent nocb kthreads creation rcu: Remove unused rcu_state.boost Paul E. McKenney (34): rcu: Mark ->expmask access in synchronize_rcu_expedited_wait() rcu: Mark accesses to boost_starttime rcu: Don't deboost before reporting expedited quiescent state rcutorture: Print message before invoking ->cb_barrier() torture: Distinguish kthread stopping and being asked to stop rcutorture: Increase visibility of forward-progress hangs rcutorture: Make rcu_fwd_cb_nodelay be a counter rcutorture: Add end-of-test check to rcu_torture_fwd_prog() loop rcutorture: Fix rcu_fwd_mutex deadlock torture: Wake up kthreads after storing task_struct pointer rcutorture: Enable limited callback-flooding tests of SRCU torture: Drop trailing ^M from console output torture: Allow four-digit repetition numbers for --configs parameter torture: Output per-failed-run summary lines from torture.sh torture: Make kvm.sh summaries note runs having only KCSAN reports torture: Indicate which torture.sh runs' bugs are all KCSAN reports torture: Compress KCSAN as well as KASAN vmlinux files torture: Make kvm-remote.sh try multiple times to download tarball torture: Print only one summary line per run torture: Make kvm-find-errors.sh notice missing vmlinux file torture: Change KVM environment variable to RCUTORTURE rcu: Refactor rcu_barrier() empty-list handling rcu: Rework rcu_barrier() and callback-migration logic rcu: Make rcu_barrier() no longer block CPU-hotplug operations rcu: Create and use an rcu_rdp_cpu_online() rcu-tasks: Use order_base_2() instead of ilog2() rcu-tasks: Set ->percpu_enqueue_shift to zero upon contention torture: Make torture.sh help message match reality rcutorture: Test SRCU size transitions rcutorture: Provide non-power-of-two Tasks RCU scenarios MAINTAINERS: Add Frederic and Neeraj to their RCU files rcu: Inline __call_rcu() into call_rcu() rcu: Mark writes to the rcu_segcblist structure's ->flags field Merge branches 'exp.2022.02.24a', 'fixes.2022.02.14a', 'rcu_barrier.2022.02.08a', 'rcu-tasks.2022.02.08a', 'rt.2022.02.01b', 'torture.2022.02.01b' and 'torturescript.2022.02.08a' into HEAD Uladzislau Rezki (Sony) (1): rcu: Fix description of kvfree_rcu() Yury Norov (1): rcu: Replace cpumask_weight with cpumask_empty where appropriate Zqiang (3): rcu: Create per-cpu rcuc kthreads only when rcutree.use_softirq=0 rcu: Add per-CPU rcuc task dumps to RCU CPU stall warnings kasan: Record work creation stack trace with interrupts enabled Documentation/admin-guide/kernel-parameters.txt | 2 + MAINTAINERS | 2 + include/linux/rcupdate.h | 4 +- include/linux/rcutree.h | 2 +- include/linux/rcuwait.h | 6 +- include/trace/events/rcu.h | 9 +- kernel/rcu/rcu_segcblist.h | 4 +- kernel/rcu/rcutorture.c | 41 ++- kernel/rcu/tasks.h | 6 +- kernel/rcu/tree.c | 328 ++++++++++++--------- kernel/rcu/tree.h | 18 +- kernel/rcu/tree_exp.h | 5 +- kernel/rcu/tree_nocb.h | 18 +- kernel/rcu/tree_plugin.h | 31 +- kernel/rcu/tree_stall.h | 35 +++ kernel/rcu/update.c | 7 + kernel/torture.c | 6 +- .../selftests/rcutorture/bin/console-badness.sh | 2 +- .../testing/selftests/rcutorture/bin/kvm-again.sh | 4 +- .../selftests/rcutorture/bin/kvm-check-branches.sh | 4 +- .../selftests/rcutorture/bin/kvm-end-run-stats.sh | 4 +- .../selftests/rcutorture/bin/kvm-find-errors.sh | 6 + .../selftests/rcutorture/bin/kvm-recheck-rcu.sh | 2 +- .../testing/selftests/rcutorture/bin/kvm-remote.sh | 25 +- tools/testing/selftests/rcutorture/bin/kvm.sh | 16 +- .../selftests/rcutorture/bin/parse-console.sh | 10 + tools/testing/selftests/rcutorture/bin/torture.sh | 38 ++- .../selftests/rcutorture/configs/rcu/RUDE01 | 2 +- .../selftests/rcutorture/configs/rcu/SRCU-N.boot | 1 + .../selftests/rcutorture/configs/rcu/SRCU-P.boot | 2 + .../selftests/rcutorture/configs/rcu/TRACE01 | 2 +- 31 files changed, 400 insertions(+), 242 deletions(-)