[GIT PULL] RCU changes for v5.5

From: Ingo Molnar
Date: Mon Nov 25 2019 - 05:53:34 EST


Linus,

Please pull the latest core-rcu-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-rcu-for-linus

# HEAD: 43e0ae7ae0f567a3f8c10ec7a4078bc482660921 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu

The main changes in this cycle were:

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

- Linux-kernel memory consistency model updates.

- Replace rcu_swap_protected() with rcu_prepace_pointer().

- Torture-test updates.

- Documentation updates.

- Miscellaneous fixes.

Thanks,

Ingo

------------------>
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 (3):
rcu: Remove unused function rcutorture_record_progress()
rcu: Remove unused variable rcu_perf_writer_state
rcu: Remove unused function hlist_bl_del_init_rcu()

Frederic Weisbecker (1):
nohz: Add TICK_DEP_BIT_RCU

Joel Fernandes (Google) (10):
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
workqueue: Convert for_each_wq to use built-in list check
rcu: Ensure that ->rcu_urgent_qs is set before resched IPI

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

Paul E. McKenney (27):
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: 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: 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
rcu: Upgrade rcu_swap_protected() to rcu_replace_pointer()
x86/kvm/pmu: Replace rcu_swap_protected() with rcu_replace_pointer()
drm/i915: Replace rcu_swap_protected() with rcu_replace_pointer()
drivers/scsi: Replace rcu_swap_protected() with rcu_replace_pointer()
fs/afs: Replace rcu_swap_protected() with rcu_replace_pointer()
bpf/cgroup: Replace rcu_swap_protected() with rcu_replace_pointer()
net/core: Replace rcu_swap_protected() with rcu_replace_pointer()
net/netfilter: Replace rcu_swap_protected() with rcu_replace_pointer()
net/sched: Replace rcu_swap_protected() with rcu_replace_pointer()
security/safesetid: Replace rcu_swap_protected() with rcu_replace_pointer()

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

kbuild test robot (1):
rcu: Several rcu_segcblist functions can be static


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