[PATCH tip/core/rcu 0/21] De-emphasize {smp_,}read_barrier_depends

From: Paul E. McKenney
Date: Fri Dec 01 2017 - 14:51:04 EST


Hello!

Now that READ_ONCE() includes smp_read_barrier_depends(), almost nothing
else needs to, the exceptions being DEC Alpha architecture-specific
code and of course READ_ONCE() itself. This series therefore removes
smp_read_barrier_depends() and read_barrier_depends() from elsewhere,
as they no longer have any effect. Note that this patch series also
prohibits use of InfiniBand on DEC Alpha: (1) A poll of DEC Alpha
users revealed no use of InfiniBand and (2) It is not clear that
InfiniBand's memory ordering correctly handles DEC Alpha, even with the
smp_read_barrier_depends() invocations.

Note also that patch 4 moves to release-acquire ordering to ensure that
the name length is properly synchronized. An alternative approach would
be to place the length in with the name, so that dependency ordering
would cover both the length and the name, but doing so seemed a bit
intrusive for this series.

Thanx, Paul

------------------------------------------------------------------------

Documentation/RCU/Design/Requirements/Requirements.html | 3 -
Documentation/RCU/rcu_dereference.txt | 6 --
Documentation/RCU/whatisRCU.txt | 3 -
Documentation/circular-buffers.txt | 3 -
Documentation/memory-barriers.txt | 18 ++++---
arch/mn10300/kernel/mn10300-serial.c | 7 ++-
drivers/dma/ioat/dma.c | 2
drivers/infiniband/Kconfig | 1
drivers/infiniband/hw/hfi1/rc.c | 4 -
drivers/infiniband/hw/hfi1/ruc.c | 1
drivers/infiniband/hw/hfi1/sdma.c | 1
drivers/infiniband/hw/hfi1/uc.c | 2
drivers/infiniband/hw/hfi1/ud.c | 2
drivers/infiniband/hw/qib/qib_rc.c | 3 -
drivers/infiniband/hw/qib/qib_ruc.c | 1
drivers/infiniband/hw/qib/qib_uc.c | 2
drivers/infiniband/hw/qib/qib_ud.c | 2
drivers/infiniband/sw/rdmavt/qp.c | 1
drivers/net/ethernet/qlogic/qed/qed_spq.c | 4 -
drivers/vhost/vhost.c | 7 ---
fs/dcache.c | 10 +---
include/linux/genetlink.h | 3 -
include/linux/netfilter/nfnetlink.h | 3 -
include/linux/percpu-refcount.h | 6 +-
include/linux/rcupdate.h | 23 ++++-----
include/linux/rtnetlink.h | 3 -
include/linux/seqlock.h | 3 -
kernel/events/uprobes.c | 12 ++---
kernel/locking/qspinlock.c | 12 ++---
kernel/tracepoint.c | 9 +--
lib/assoc_array.c | 37 +++++-----------
lib/percpu-refcount.c | 8 +--
mm/ksm.c | 9 ---
net/ipv4/netfilter/arp_tables.c | 7 ---
net/ipv4/netfilter/ip_tables.c | 7 ---
net/ipv6/netfilter/ip6_tables.c | 7 ---
scripts/checkpatch.pl | 6 ++
security/keys/keyring.c | 7 ---
38 files changed, 85 insertions(+), 160 deletions(-)