Re: [GIT PULL rcu/next] RCU commits for 3.18

From: Ingo Molnar
Date: Tue Sep 23 2014 - 01:23:52 EST



* Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:

> Hello, Ingo,
>
> The changes in this series include:
>
> 1. Update RCU documentation. These were posted to LKML at
> https://lkml.org/lkml/2014/8/28/378.
>
> 2. Miscellaneous fixes. These were posted to LKML at
> https://lkml.org/lkml/2014/8/28/386. An additional fix that
> eliminates a documented (but now inconvenient) deadlock between
> RCU hotplug and expedited grace periods was posted at
> https://lkml.org/lkml/2014/8/28/573.
>
> 3. Changes related to No-CBs CPUs and NO_HZ_FULL. These were posted
> to LKML at https://lkml.org/lkml/2014/8/28/412.
>
> 4. Torture-test updates. These were posted to LKML at
> https://lkml.org/lkml/2014/8/28/546 and at
> https://lkml.org/lkml/2014/9/11/1114.
>
> 5. RCU-tasks implementation. These were posted to LKML at
> https://lkml.org/lkml/2014/8/28/540.
>
> All of these have been exposed to -next testing.
> These changes are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next
>
> for you to fetch changes up to dd56af42bd829c6e770ed69812bd65a04eaeb1e4:
>
> rcu: Eliminate deadlock between CPU hotplug and expedited grace periods (2014-09-18 16:22:27 -0700)
>
> ----------------------------------------------------------------
> Ard Biesheuvel (1):
> rcu: Define tracepoint strings only if CONFIG_TRACING is set
>
> Davidlohr Bueso (9):
> locktorture: Rename locktorture_runnable parameter
> locktorture: Add documentation
> locktorture: Support mutexes
> locktorture: Teach about lock debugging
> locktorture: Make statistics generic
> torture: Address race in module cleanup
> locktorture: Add infrastructure for torturing read locks
> locktorture: Support rwsems
> locktorture: Introduce torture context
>
> Joe Perches (1):
> rcu: Use pr_alert/pr_cont for printing logs
>
> Oleg Nesterov (1):
> rcu: Uninline rcu_read_lock_held()
>
> Paul E. McKenney (46):
> memory-barriers: Fix control-ordering no-transitivity example
> memory-barriers: Retain barrier() in fold-to-zero example
> memory-barriers: Fix description of 2-legged-if-based control dependencies
> rcu: Break more call_rcu() deadlock involving scheduler and perf
> rcu: Make TINY_RCU tinier by putting error checks under #ifdef
> rcu: Replace flush_signals() with WARN_ON(signal_pending())
> rcu: Add step to initrd documentation
> rcutorture: Test partial nohz_full= configuration
> rcutorture: Specify MAXSMP=y for TREE01
> rcutorture: Specify CONFIG_CPUMASK_OFFSTACK=y for TREE07
> rcutorture: Add callback-flood test
> torture: Print PID in hung-kernel diagnostic message
> torture: Check for nul bytes in console output
> rcu: Add call_rcu_tasks()
> rcu: Provide cond_resched_rcu_qs() to force quiescent states in long loops
> rcu: Add synchronous grace-period waiting for RCU-tasks
> rcu: Make TASKS_RCU handle tasks that are almost done exiting
> rcutorture: Add torture tests for RCU-tasks
> rcutorture: Add RCU-tasks test cases
> rcu: Add stall-warning checks for RCU-tasks
> rcu: Improve RCU-tasks energy efficiency
> documentation: Add verbiage on RCU-tasks stall warning messages
> rcu: Defer rcu_tasks_kthread() creation till first call_rcu_tasks()
> rcu: Make TASKS_RCU handle nohz_full= CPUs
> rcu: Make rcu_tasks_kthread()'s GP-wait loop allow preemption
> rcu: Remove redundant preempt_disable() from rcu_note_voluntary_context_switch()
> rcu: Additional information on RCU-tasks stall-warning messages
> rcu: Remove local_irq_disable() in rcu_preempt_note_context_switch()
> rcu: Per-CPU operation cleanups to rcu_*_qs() functions
> rcutorture: Add RCU-tasks tests to default rcutorture list
> rcu: Fix attempt to avoid unsolicited offloading of callbacks
> rcu: Rationalize kthread spawning
> rcu: Create rcuo kthreads only for onlined CPUs
> rcu: Eliminate redundant rcu_sysidle_state variable
> rcu: Don't track sysidle state if no nohz_full= CPUs
> rcu: Avoid misordering in __call_rcu_nocb_enqueue()
> rcu: Handle NOCB callbacks from irq-disabled idle code
> rcu: Avoid misordering in nocb_leader_wait()
> Merge branches 'doc.2014.09.07a', 'fixes.2014.09.10a', 'nocb-nohz.2014.09.16b' and 'torture.2014.09.07a' into HEAD
> Merge branch 'rcu-tasks.2014.09.10a' into HEAD
> locktorture: Make torture scripting account for new _runnable name
> locktorture: Add test scenario for mutex_lock
> locktorture: Add test scenario for rwsem_lock
> rcutorture: Rename rcutorture_runnable parameter
> locktorture: Document boot/module parameters
> rcu: Eliminate deadlock between CPU hotplug and expedited grace periods
>
> Pranith Kumar (18):
> rcu: Remove remaining read-modify-write ACCESS_ONCE() calls
> rcu: Fix sparse warning about rcu_batches_completed_preempt() being non-static
> rcu: Use bool type for return value in rcu_is_watching()
> rcu: Return bool type for rcu_try_advance_all_cbs()
> rcu: Return bool type in rcu_lockdep_current_cpu_online()
> rcu: Use true/false instead of 1/0 for a bool type
> rcu: Update tiny.c references to tree.c
> rcu: Remove stale comment in tree.c
> rcu: Use rcu_gp_kthread_wake() to wake up grace period kthreads
> rcutorture: Fix a sparse warning by marking boost_mutex static
> rcutorture: Use bash shell for all the test scripts
> rcutorture: Set executable bit and drop bash from Usage
> rcu: Check the return value of zalloc_cpumask_var()
> rcu: Use true/false for return in __call_rcu_nocb()
> rcu: Use true/false for return in rcu_nocb_adopt_orphan_cbs()
> rcu: Use false for return in __call_rcu_nocb()
> rcu: Return false instead of 0 in rcu_nocb_adopt_orphan_cbs()
> rcu: Check for have_rcu_nocb_mask instead of rcu_nocb_mask
>
> Steven Rostedt (1):
> rcu: Export RCU-tasks APIs to GPL modules
>
> Documentation/RCU/stallwarn.txt | 33 +-
> Documentation/kernel-parameters.txt | 68 +++-
> Documentation/locking/locktorture.txt | 142 ++++++++
> Documentation/memory-barriers.txt | 128 +++----
> fs/file.c | 2 +-
> include/linux/cpu.h | 2 +
> include/linux/init_task.h | 12 +-
> include/linux/lockdep.h | 1 +
> include/linux/rcupdate.h | 106 +++---
> include/linux/rcutiny.h | 2 +-
> include/linux/sched.h | 39 +-
> include/linux/torture.h | 5 +-
> include/trace/events/rcu.h | 3 +
> init/Kconfig | 14 +-
> init/main.c | 1 +
> kernel/cpu.c | 16 +-
> kernel/exit.c | 3 +
> kernel/locking/locktorture.c | 392 ++++++++++++++++----
> kernel/rcu/rcutorture.c | 278 ++++++++++----
> kernel/rcu/tiny.c | 20 +-
> kernel/rcu/tree.c | 115 +++---
> kernel/rcu/tree.h | 18 +-
> kernel/rcu/tree_plugin.h | 404 ++++++++++++++-------
> kernel/rcu/update.c | 345 +++++++++++++++++-
> kernel/softirq.c | 2 +-
> kernel/sysctl.c | 9 -
> kernel/torture.c | 32 +-
> mm/mlock.c | 2 +-
> .../selftests/rcutorture/bin/config2frag.sh | 4 +-
> .../selftests/rcutorture/bin/configcheck.sh | 4 +-
> .../testing/selftests/rcutorture/bin/configinit.sh | 4 +-
> .../testing/selftests/rcutorture/bin/functions.sh | 20 +
> .../testing/selftests/rcutorture/bin/kvm-build.sh | 2 +-
> .../selftests/rcutorture/bin/kvm-recheck-lock.sh | 2 +-
> .../selftests/rcutorture/bin/kvm-recheck-rcu.sh | 2 +-
> .../selftests/rcutorture/bin/kvm-recheck.sh | 2 +-
> .../selftests/rcutorture/bin/kvm-test-1-run.sh | 5 +-
> tools/testing/selftests/rcutorture/bin/kvm.sh | 6 +-
> .../selftests/rcutorture/bin/parse-build.sh | 5 +-
> .../selftests/rcutorture/bin/parse-console.sh | 9 +-
> .../selftests/rcutorture/bin/parse-torture.sh | 5 +-
> .../selftests/rcutorture/configs/lock/CFLIST | 2 +
> .../selftests/rcutorture/configs/lock/LOCK02 | 6 +
> .../selftests/rcutorture/configs/lock/LOCK02.boot | 1 +
> .../selftests/rcutorture/configs/lock/LOCK03 | 6 +
> .../selftests/rcutorture/configs/lock/LOCK03.boot | 1 +
> .../rcutorture/configs/lock/ver_functions.sh | 2 +-
> .../selftests/rcutorture/configs/rcu/CFLIST | 3 +
> .../selftests/rcutorture/configs/rcu/TASKS01 | 9 +
> .../selftests/rcutorture/configs/rcu/TASKS01.boot | 1 +
> .../selftests/rcutorture/configs/rcu/TASKS02 | 5 +
> .../selftests/rcutorture/configs/rcu/TASKS02.boot | 1 +
> .../selftests/rcutorture/configs/rcu/TASKS03 | 13 +
> .../selftests/rcutorture/configs/rcu/TASKS03.boot | 1 +
> .../selftests/rcutorture/configs/rcu/TREE01 | 4 +-
> .../selftests/rcutorture/configs/rcu/TREE01.boot | 2 +-
> .../selftests/rcutorture/configs/rcu/TREE07 | 3 +-
> .../selftests/rcutorture/configs/rcu/TREE07.boot | 1 +
> .../rcutorture/configs/rcu/ver_functions.sh | 2 +-
> tools/testing/selftests/rcutorture/doc/initrd.txt | 1 +
> 60 files changed, 1798 insertions(+), 530 deletions(-)
> create mode 100644 Documentation/locking/locktorture.txt
> mode change 100644 => 100755 tools/testing/selftests/rcutorture/bin/config2frag.sh
> mode change 100644 => 100755 tools/testing/selftests/rcutorture/bin/kvm.sh
> create mode 100644 tools/testing/selftests/rcutorture/configs/lock/LOCK02
> create mode 100644 tools/testing/selftests/rcutorture/configs/lock/LOCK02.boot
> create mode 100644 tools/testing/selftests/rcutorture/configs/lock/LOCK03
> create mode 100644 tools/testing/selftests/rcutorture/configs/lock/LOCK03.boot
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TASKS01
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TASKS01.boot
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TASKS02
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TASKS02.boot
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TASKS03
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TASKS03.boot
> create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE07.boot
>

Pulled into tip:core/rcu, thanks Paul!

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/