[GIT PULL rcu/next + tools/memory-model] RCU and LKMM commits for 5.5

From: Paul E. McKenney
Date: Wed Oct 30 2019 - 07:52:07 EST


Hello, Ingo,

This pull request contains the following changes:

1. Documentation updates.

https://lore.kernel.org/lkml/20191003012741.GA12456@paulmck-ThinkPad-P72

2. Miscellaneous fixes.

https://lore.kernel.org/lkml/20191003013243.GA12705@paulmck-ThinkPad-P72

3. Dynamic tick (nohz) updates, perhaps most notably changes to
force the tick on when needed due to lengthy in-kernel execution
on CPUs on which RCU is waiting.

https://lore.kernel.org/lkml/20191003013834.GA12927@paulmck-ThinkPad-P72

4. Replace rcu_swap_protected() with rcu_prepace_pointer().

https://lore.kernel.org/lkml/20191022191136.GA25627@paulmck-ThinkPad-P72

NOTE: Commit 81db81f82993 ("drivers/scsi: Replace
rcu_swap_protected() with rcu_replace()") conflicts with the
SCSI tree's d188b0675b21 ("scsi: core: Add sysfs attributes for
VPD pages 0h and 89h"), as noted by Stephen Rothwell here:

https://lore.kernel.org/lkml/20191029150826.38c26ef8@xxxxxxxxxxxxxxxx

Stephen's fixup looks good both to me and to Martin Peterson:

https://lore.kernel.org/lkml/yq1pnif6ne7.fsf@xxxxxxxxxx

5. Torture-test updates.

https://lore.kernel.org/lkml/20191003014710.GA13323@paulmck-ThinkPad-P72

6. Linux-kernel memory consistency model updates.

https://lore.kernel.org/lkml/20191003001039.GA8027@paulmck-ThinkPad-P72

All of these have been subjected to the kbuild 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 8e655478739142a2df879907d14977721ab36c9f:

Merge branches 'doc.2019.10.29a', 'fixes.2019.10.29a', 'nohz.2019.10.28a', 'replace.2019.10.28a', 'torture.2019.10.05a' and 'lkmm.2019.10.05a' into HEAD (2019-10-29 02:49:25 -0700)

These changes decrease the size of the kernel by about 500 lines, mostly
due to .rst files being more compact than the original .html files.
The net savings would have been greater except for the addition of some
much-needed LKMM documentation.

----------------------------------------------------------------
Alan Stern (4):
tools/memory-model: Fix data race detection for unordered store and load
tools/memory-model/Documentation: Fix typos in explanation.txt
tools/memory-model/Documentation: Put redefinition of rcu-fence into explanation.txt
tools/memory-model/Documentation: Add plain accesses and data races to explanation.txt

Chuhong Yuan (1):
locktorture: Replace strncmp() with str_has_prefix()

Dan Carpenter (1):
rcu: Fix uninitialized variable in nocb_gp_wait()

Ethan Hansen (2):
rcu: Remove unused function rcutorture_record_progress()
rcu: Remove unused variable rcu_perf_writer_state

Frederic Weisbecker (1):
nohz: Add TICK_DEP_BIT_RCU

Joel Fernandes (Google) (8):
rcu: Reset CPU hints when reporting a quiescent state
Revert docs from "rcu: Restore barrier() to rcu_read_lock() and rcu_read_unlock()"
Revert docs from "treewide: Rename rcu_dereference_raw_notrace() to _check()"
docs: rcu: Correct links referring to titles
docs: rcu: Increase toctree to 3
Restore docs "treewide: Rename rcu_dereference_raw_notrace() to _check()"
Restore docs "rcu: Restore barrier() to rcu_read_lock() and rcu_read_unlock()"
doc: Update list_for_each_entry_rcu() documentation

Mauro Carvalho Chehab (1):
docs: rcu: convert some articles from html to ReST

Paul E. McKenney (32):
rcu: Remove unused function hlist_bl_del_init_rcu()
time: Export tick start/stop functions for rcutorture
rcu: Force on tick when invoking lots of callbacks
rcutorture: Force on tick for readers and callback flooders
stop_machine: Provide RCU quiescent state in multi_cpu_stop()
rcu: Make CPU-hotplug removal operations enable tick
rcutorture: Emulate dyntick aspect of userspace nohz_full sojourn
rcutorture: Remove CONFIG_HOTPLUG_CPU=n from scenarios
rcutorture: Separate warnings for each failure type
rcutorture: Make in-kernel-loop testing more brutal
rcu: Upgrade rcu_swap_protected() to rcu_replace()
x86/kvm/pmu: Replace rcu_swap_protected() with rcu_replace()
drm/i915: Replace rcu_swap_protected() with rcu_replace()
drivers/scsi: Replace rcu_swap_protected() with rcu_replace()
fs/afs: Replace rcu_swap_protected() with rcu_replace()
bpf/cgroup: Replace rcu_swap_protected() with rcu_replace()
net/core: Replace rcu_swap_protected() with rcu_replace()
net/netfilter: Replace rcu_swap_protected() with rcu_replace()
net/sched: Replace rcu_swap_protected() with rcu_replace()
security/safesetid: Replace rcu_swap_protected() with rcu_replace()
rcu: Force tick on for nohz_full CPUs not reaching quiescent states
rcu: Force nohz_full tick on upon irq enter instead of exit
rcu: Confine ->core_needs_qs accesses to the corresponding CPU
rcu: Make kernel-mode nohz_full CPUs invoke the RCU core processing
rcu: Several rcu_segcblist functions can be static
workqueue: Convert for_each_wq to use built-in list check
rcu: Ensure that ->rcu_urgent_qs is set before resched IPI
rcu: Remove obsolete descriptions for rcu_barrier tracepoint
rcu: Update descriptions for rcu_nocb_wake tracepoint
rcu: Update descriptions for rcu_future_grace_period tracepoint
rcu: Suppress levelspread uninitialized messages
Merge branches 'doc.2019.10.29a', 'fixes.2019.10.29a', 'nohz.2019.10.28a', 'replace.2019.10.28a', 'torture.2019.10.05a' and 'lkmm.2019.10.05a' into HEAD

Sebastian Andrzej Siewior (1):
Documentation: Rename rcu_node_context_switch() to rcu_note_context_switch()

Wolfgang M. Reimer (1):
locking: locktorture: Do not include rwlock.h directly

.../Design/Data-Structures/Data-Structures.html | 1391 --------
.../RCU/Design/Data-Structures/Data-Structures.rst | 1163 +++++++
.../Expedited-Grace-Periods.html | 668 ----
.../Expedited-Grace-Periods.rst | 521 +++
.../Design/Memory-Ordering/Tree-RCU-Diagram.html | 9 -
.../Memory-Ordering/Tree-RCU-Memory-Ordering.html | 704 ----
.../Memory-Ordering/Tree-RCU-Memory-Ordering.rst | 624 ++++
.../RCU/Design/Memory-Ordering/TreeRCU-gp.svg | 2 +-
.../RCU/Design/Memory-Ordering/TreeRCU-qs.svg | 2 +-
.../RCU/Design/Requirements/Requirements.html | 3401 --------------------
.../RCU/Design/Requirements/Requirements.rst | 2704 ++++++++++++++++
Documentation/RCU/index.rst | 7 +-
Documentation/RCU/lockdep.txt | 18 +-
Documentation/RCU/whatisRCU.txt | 14 +-
arch/x86/kvm/pmu.c | 4 +-
drivers/gpu/drm/i915/gem/i915_gem_context.c | 2 +-
drivers/scsi/scsi.c | 4 +-
drivers/scsi/scsi_sysfs.c | 8 +-
fs/afs/vl_list.c | 4 +-
include/linux/rculist_bl.h | 28 -
include/linux/rcupdate.h | 18 +
include/linux/rcutiny.h | 1 +
include/linux/rcutree.h | 1 +
include/linux/tick.h | 7 +-
include/trace/events/rcu.h | 47 +-
include/trace/events/timer.h | 3 +-
kernel/bpf/cgroup.c | 4 +-
kernel/locking/locktorture.c | 9 +-
kernel/rcu/rcu.h | 4 +-
kernel/rcu/rcu_segcblist.c | 6 +-
kernel/rcu/rcuperf.c | 16 -
kernel/rcu/rcutorture.c | 44 +-
kernel/rcu/tree.c | 73 +-
kernel/rcu/tree.h | 1 +
kernel/rcu/tree_plugin.h | 2 +-
kernel/stop_machine.c | 1 +
kernel/time/tick-sched.c | 11 +
kernel/workqueue.c | 10 +-
net/core/dev.c | 4 +-
net/core/sock_reuseport.c | 4 +-
net/netfilter/nf_tables_api.c | 5 +-
net/sched/act_api.c | 2 +-
net/sched/act_csum.c | 4 +-
net/sched/act_ct.c | 3 +-
net/sched/act_ctinfo.c | 4 +-
net/sched/act_ife.c | 2 +-
net/sched/act_mirred.c | 4 +-
net/sched/act_mpls.c | 2 +-
net/sched/act_police.c | 6 +-
net/sched/act_sample.c | 4 +-
net/sched/act_skbedit.c | 4 +-
net/sched/act_tunnel_key.c | 4 +-
net/sched/act_vlan.c | 2 +-
security/safesetid/securityfs.c | 4 +-
tools/memory-model/Documentation/explanation.txt | 602 +++-
tools/memory-model/linux-kernel.cat | 2 +-
.../selftests/rcutorture/configs/rcu/TASKS03 | 3 -
.../selftests/rcutorture/configs/rcu/TREE02 | 3 -
.../selftests/rcutorture/configs/rcu/TREE04 | 3 -
.../selftests/rcutorture/configs/rcu/TREE06 | 3 -
.../selftests/rcutorture/configs/rcu/TREE08 | 3 -
.../selftests/rcutorture/configs/rcu/TREE09 | 3 -
.../selftests/rcutorture/configs/rcu/TRIVIAL | 3 -
.../selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 1 -
64 files changed, 5830 insertions(+), 6390 deletions(-)
delete mode 100644 Documentation/RCU/Design/Data-Structures/Data-Structures.html
create mode 100644 Documentation/RCU/Design/Data-Structures/Data-Structures.rst
delete mode 100644 Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.html
create mode 100644 Documentation/RCU/Design/Expedited-Grace-Periods/Expedited-Grace-Periods.rst
delete mode 100644 Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Diagram.html
delete mode 100644 Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.html
create mode 100644 Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst
delete mode 100644 Documentation/RCU/Design/Requirements/Requirements.html
create mode 100644 Documentation/RCU/Design/Requirements/Requirements.rst