[GIT PULL rcu/next] RCU commits for 3.18

From: Paul E. McKenney
Date: Mon Sep 22 2014 - 18:04:51 EST


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

--
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/