[GIT PULL rcu/next] RCU commits for 4.6

From: Paul E. McKenney
Date: Mon Mar 07 2016 - 15:25:41 EST


Hello, Ingo,

Note that this series conflicts with some commits in Thomas Gleixner's
hotplug series and in Daniel Wagner's swait series, both of which are in
-tip. I have suggested conflict-resolution commits for Daniel's commits
(25f0d48a4299 "Merge commit 'abedf8e2419fb873d919dd74de2e84b510259339'
into wagi.2016.03.01a") and for Thomas's commits (dc96aeda643f "Merge
commit '27d50c7eeb0f' into wagi.2016.03.01a"), which you might find
useful. These merge commits pass rcutorture testing, 0day robot testing,
and -next testing.

The changes in this series include:

1. Documentation updates, including RCU data structure design-level
documentation.

https://lkml.org/lkml/2016/2/24/26

2. Miscellaneous fixes.

https://lkml.org/lkml/2016/2/24/34

3. Torture-test updates.

https://lkml.org/lkml/2016/2/24/50

As noted earlier, 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 2863b4e3dd92a9d697dd66b219710e478e0a4531:

Merge branches 'doc.2015.02.23a', 'fixes.2015.02.23a' and 'torture.2015.02.23a' into HEAD (2016-02-23 20:05:19 -0800)

----------------------------------------------------------------
Boqun Feng (3):
sparse: Add __private to privatize members of structs
RCU: Privatize rcu_node::lock
irq: Privatize irq_common_data::state_use_accessors

Chen Gang (1):
rcu: Remove useless rcu_data_p when !PREEMPT_RCU

Paul E. McKenney (25):
rcutorture: Add checks for rcutorture writer starvation
rcutorture: Don't keep empty console.log.diags files
rcutorture: Check for self-detected stalls
documentation: Add real-time requirements from CPU-bound workloads
documentation: Fix control dependency and identical stores
documentation: Fix memory-barriers.txt section references
documentation: Add synchronize_rcu_mult() to the requirements
documentation: Remove obsolete reference to RCU-protected indexes
documentation: Subsequent writes ordered by rcu_dereference()
documentation: Distinguish between local and global transitivity
documentation: Add alternative release-acquire outcome
documentation: Add documentation for RCU's major data structures
documentation: Explain why rcu_read_lock() needs no barrier()
documentation: Transitivity is not cumulativity
documentation: Document illegality of call_rcu() from offline CPUs
documentation: Explain how RCU's combining tree fights contention
rcu: Assign false instead of 0 for ->core_needs_qs
rcu: Update rcu_report_qs_rsp() comment
rcu: Stop treating in-kernel CPU-bound workloads as errors
rcu: Set rdp->gpwrap when CPU is idle
rcutorture: Correct no-expedite console messages
rcu: Document unique-name limitation for DEFINE_STATIC_SRCU()
rcu: Catch up rcu_report_qs_rdp() comment with reality
rcu: Export rcu_gp_is_normal()
Merge branches 'doc.2015.02.23a', 'fixes.2015.02.23a' and 'torture.2015.02.23a' into HEAD

Paul Gortmaker (1):
rcu: Make rcu/tiny_plugin.h explicitly non-modular

SeongJae Park (1):
documentation: Clarify compiler store-fusion example

Yang Shi (1):
rcu: Remove rcu_user_hooks_switch

.../Design/Data-Structures/BigTreeClassicRCU.svg | 474 +++++++
.../Design/Data-Structures/BigTreeClassicRCUBH.svg | 499 +++++++
.../Data-Structures/BigTreeClassicRCUBHdyntick.svg | 695 ++++++++++
.../Data-Structures/BigTreePreemptRCUBHdyntick.svg | 741 +++++++++++
.../BigTreePreemptRCUBHdyntickCB.svg | 858 ++++++++++++
.../Design/Data-Structures/Data-Structures.html | 1395 ++++++++++++++++++++
.../Design/Data-Structures/Data-Structures.htmlx | 1295 ++++++++++++++++++
.../Design/Data-Structures/HugeTreeClassicRCU.svg | 939 +++++++++++++
.../RCU/Design/Data-Structures/TreeLevel.svg | 828 ++++++++++++
.../RCU/Design/Data-Structures/TreeMapping.svg | 305 +++++
.../Design/Data-Structures/TreeMappingLevel.svg | 380 ++++++
.../RCU/Design/Data-Structures/blkd_task.svg | 843 ++++++++++++
.../RCU/Design/Data-Structures/nxtlist.svg | 396 ++++++
.../RCU/Design/Requirements/Requirements.html | 225 +++-
.../RCU/Design/Requirements/Requirements.htmlx | 121 +-
Documentation/memory-barriers.txt | 141 +-
include/linux/compiler.h | 12 +-
include/linux/irq.h | 6 +-
include/linux/rcupdate.h | 2 -
include/linux/srcu.h | 19 +-
kernel/irq/internals.h | 4 +
kernel/rcu/rcutorture.c | 14 +-
kernel/rcu/tiny_plugin.h | 15 +-
kernel/rcu/tree.c | 143 +-
kernel/rcu/tree.h | 42 +-
kernel/rcu/tree_plugin.h | 27 +-
kernel/rcu/update.c | 1 +
scripts/checkpatch.pl | 3 +-
.../selftests/rcutorture/bin/parse-console.sh | 6 +-
29 files changed, 10233 insertions(+), 196 deletions(-)
create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreeClassicRCU.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreeClassicRCUBH.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreeClassicRCUBHdyntick.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreePreemptRCUBHdyntick.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/BigTreePreemptRCUBHdyntickCB.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/Data-Structures.html
create mode 100644 Documentation/RCU/Design/Data-Structures/Data-Structures.htmlx
create mode 100644 Documentation/RCU/Design/Data-Structures/HugeTreeClassicRCU.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/TreeLevel.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/TreeMapping.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/TreeMappingLevel.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/blkd_task.svg
create mode 100644 Documentation/RCU/Design/Data-Structures/nxtlist.svg