On Tue, Jun 18, 2019 at 11:07:42AM -0700, Paul E. McKenney wrote: > Hello, Ingo, > > This pull request contains the following changes: Gah!!! This one has some duplicated commits, so please ignore. I will send an updated pull request early next week. It is functionally correct, but... One of those weeks, I guess. :-/ Thanx, Paul > 1. Yet another round of flavor-consolidation cleanups. > > http://lkml.kernel.org/r/20190530145204.GA28526@xxxxxxxxxxxxx > > 2. Documentation updates. > > http://lkml.kernel.org/r/20190530145504.GA29820@xxxxxxxxxxxxx > > 3. Miscellaneous fixes. > > http://lkml.kernel.org/r/20190530145942.GA30318@xxxxxxxxxxxxx > > 4. SRCU updates. > > http://lkml.kernel.org/r/20190530150347.GA31311@xxxxxxxxxxxxx > > 5. RCU-sync updates. > > http://lkml.kernel.org/r/20190530150816.GA32130@xxxxxxxxxxxxx > > 6. Torture-test updates. > > http://lkml.kernel.org/r/20190530151650.GA422@xxxxxxxxxxxxx > > This pull request does not contain LKMM updates, which will be the > subject of a later pull request. (Apologies for the hassle, but there > is still work in progress on handling plain assignment statements.) > > All of these changes have been subjected to 0day Test Robot and -next > testing, and are available in the Git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git for-mingo > > for you to fetch changes up to 8bec773060bd068bddc1014d25a7d16ac84c4fd4: > > Merge branches 'consolidate.2019.05.28a', 'doc.2019.05.28a', 'fixes.2019.06.13a', 'fixes.2019.05.28a', 'srcu.2019.05.28a', 'sync.2019.05.28a' and 'torture.2019.05.28a' into HEAD (2019-06-13 15:39:55 -0700) > > ---------------------------------------------------------------- > Andrea Parri (2): > rcu: Don't return a value from rcu_assign_pointer() > rcu: Don't return a value from rcu_assign_pointer() > > Jiang Biao (2): > rcu: Remove unused rdp local from synchronize_rcu_expedited() > rcu: Make __call_srcu static > > Joel Fernandes (Google) (7): > lockdep: Add assertion to check if in an interrupt > rcu: Add checks for dynticks counters in rcu_is_cpu_rrupt_from_idle() > doc/rcuref: Document real world examples in kernel > srcu: Remove unused vmlinux srcu linker entries > module: Make srcu_struct ptr array as read-only > rcutorture: Select from only online CPUs > rcutorture: Add cpu0 to the set of CPUs to add jitter > > Neeraj Upadhyay (2): > rcu: Dump specified number of blocked tasks > rcu: Correctly unlock root node in rcu_check_gp_start_stall() > > Oleg Nesterov (4): > rcu/sync: Kill rcu_sync_type/gp_type > uprobes: Use DEFINE_STATIC_PERCPU_RWSEM() to initialize dup_mmap_sem > locking/percpu-rwsem: Add DEFINE_PERCPU_RWSEM(), use it to initialize cgroup_threadgroup_rwsem > rcu/sync: Simplify the state machine > > Paul E. McKenney (35): > rcu: Check for wakeup-safe conditions in rcu_read_unlock_special() > rcu: Only do rcu_read_unlock_special() wakeups if expedited > rcu: Allow rcu_read_unlock_special() to raise_softirq() if in_irq() > rcu: Use irq_work to get scheduler's attention in clean context > rcu: Inline invoke_rcu_callbacks() into its sole remaining caller > rcu: Avoid self-IPI in sync_rcu_exp_select_node_cpus() > rcu: Avoid self-IPI in sync_sched_exp_online_cleanup() > rcu: Rename rcu_data's ->deferred_qs to ->exp_deferred_qs > rcu: Upgrade sync_exp_work_done() to smp_mb() > rcu: Make kfree_rcu() ignore NULL pointers > rcu: Fix irritating whitespace error in rcu_assign_pointer() > rcu: Set a maximum limit for back-to-back callback invocation > doc: Remove ".vnet" from paulmck email addresses > srcu: Allocate per-CPU data for DEFINE_SRCU() in modules > rcutorture: Add cond_resched() to forward-progress free-up loop > rcutorture: Fix stutter_wait() return value and freelist checks > torture: Allow inter-stutter interval to be specified > torture: Make kvm-find-errors.sh and kvm-recheck.sh provide exit status > rcutorture: Provide rudimentary Makefile > rcutorture: Exempt tasks RCU from timely draining of grace periods > rcutorture: Exempt TREE01 from forward-progress testing > rcutorture: Give the scheduler a chance on PREEMPT && NO_HZ_FULL kernels > rcutorture: Halt forward-progress checks at end of run > rcutorture: Add trivial RCU implementation > torture: Capture qemu output > torture: Add function graph-tracing cheat sheet > torture: Run kernel build in source directory > torture: Make --cpus override idleness calculations > torture: Add --trust-make to suppress "make clean" > rcutorture: Dump trace buffer for callback pipe drain failures > torture: Suppress propagating trace_printk() warning > rcutorture: Upper case solves the case of the vanishing NULL pointer > rcu: Upgrade sync_exp_work_done() to smp_mb() > rcu: Fix irritating whitespace error in rcu_assign_pointer() > Merge branches 'consolidate.2019.05.28a', 'doc.2019.05.28a', 'fixes.2019.06.13a', 'fixes.2019.05.28a', 'srcu.2019.05.28a', 'sync.2019.05.28a' and 'torture.2019.05.28a' into HEAD > > Sebastian Andrzej Siewior (2): > rcu: Enable elimination of Tree-RCU softirq processing > rcutorture: Tweak kvm options > > Waiman Long (2): > rcu: Force inlining of rcu_read_lock() > rcu: Force inlining of rcu_read_lock() > > Zhenzhong Duan (1): > doc: Fixup definition of rcupdate.rcu_task_stall_timeout > > Documentation/RCU/rcuref.txt | 21 +- > Documentation/RCU/stallwarn.txt | 2 +- > Documentation/RCU/whatisRCU.txt | 8 +- > Documentation/admin-guide/kernel-parameters.txt | 6 + > Documentation/core-api/circular-buffers.rst | 2 +- > Documentation/memory-barriers.txt | 2 +- > .../translations/ko_KR/memory-barriers.txt | 2 +- > include/linux/lockdep.h | 7 + > include/linux/module.h | 5 + > include/linux/percpu-rwsem.h | 10 +- > include/linux/rcu_sync.h | 40 ++-- > include/linux/rcupdate.h | 21 +- > include/linux/sched.h | 2 +- > include/linux/srcutree.h | 14 +- > include/linux/torture.h | 2 +- > kernel/cgroup/cgroup.c | 3 +- > kernel/events/uprobes.c | 4 +- > kernel/locking/locktorture.c | 2 +- > kernel/locking/percpu-rwsem.c | 2 +- > kernel/module.c | 5 + > kernel/rcu/rcu.h | 5 + > kernel/rcu/rcutorture.c | 96 +++++++-- > kernel/rcu/srcutree.c | 69 ++++++- > kernel/rcu/sync.c | 214 ++++++++++----------- > kernel/rcu/tree.c | 164 +++++++++++++--- > kernel/rcu/tree.h | 6 +- > kernel/rcu/tree_exp.h | 53 +++-- > kernel/rcu/tree_plugin.h | 195 ++++++------------- > kernel/rcu/tree_stall.h | 4 +- > kernel/rcu/update.c | 13 ++ > kernel/torture.c | 23 ++- > tools/include/linux/rcu.h | 4 +- > tools/testing/radix-tree/linux/rcupdate.h | 2 +- > tools/testing/selftests/rcutorture/Makefile | 3 + > .../testing/selftests/rcutorture/bin/configinit.sh | 39 ++-- > tools/testing/selftests/rcutorture/bin/cpus2use.sh | 5 + > .../testing/selftests/rcutorture/bin/functions.sh | 13 +- > tools/testing/selftests/rcutorture/bin/jitter.sh | 13 +- > .../testing/selftests/rcutorture/bin/kvm-build.sh | 9 +- > .../selftests/rcutorture/bin/kvm-find-errors.sh | 3 + > .../selftests/rcutorture/bin/kvm-recheck.sh | 13 +- > .../selftests/rcutorture/bin/kvm-test-1-run.sh | 23 +-- > tools/testing/selftests/rcutorture/bin/kvm.sh | 14 +- > .../selftests/rcutorture/bin/parse-build.sh | 2 +- > .../selftests/rcutorture/bin/parse-console.sh | 1 + > .../selftests/rcutorture/configs/rcu/CFcommon | 3 + > .../selftests/rcutorture/configs/rcu/TREE01.boot | 1 + > .../selftests/rcutorture/configs/rcu/TRIVIAL | 14 ++ > .../selftests/rcutorture/configs/rcu/TRIVIAL.boot | 3 + > 49 files changed, 736 insertions(+), 431 deletions(-) > create mode 100644 tools/testing/selftests/rcutorture/Makefile > create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL > create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TRIVIAL.boot