Skip to content

De-emphasize {smp_,}read_barrier_depends

Paul E. McKenney keyrings kvm linux-alpha linux-fsdevel linux-mm linux-rdma linux-security-module lkml netdev netfilter-devel virtualization 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest21 patches 53 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/21doc: READ_ONCE() now implies smp_barrier_depends()Documentation/memory-barriers.txt+6 -56 replies
2/21mn10300: READ_ONCE() now implies smp_read_barrier_depends()arch/mn10300/kernel/mn10300-serial.c+5 -20 replies
3/21drivers/net/ethernet/qlogic/qed: Fix __qed_spq_block() orderingdrivers/net/ethernet/qlogic/qed/qed_spq.c+1 -30 replies
4/21fs/dcache: Use release-acquire for name/length updatefs/dcache.c+3 -70 replies
5/21percpu: READ_ONCE() now implies smp_read_barrier_depends()include/linux/percpu-refcount.h lib/percpu-refcount.c+7 -70 replies
6/21rcu: Adjust read-side accessor comments for READ_ONCE()include/linux/rcupdate.h+11 -120 replies
7/21rtnetlink: Update now-misleading smp_read_barrier_depends() commentinclude/linux/rtnetlink.h+1 -20 replies
8/21seqlock: Remove now-redundant smp_read_barrier_depends()include/linux/seqlock.h+1 -20 replies
9/21uprobes: Remove now-redundant smp_read_barrier_depends()kernel/events/uprobes.c+6 -60 replies
10/21locking: Remove smp_read_barrier_depends() from queued_spin_lock_slowpath()kernel/locking/qspinlock.c+5 -70 replies
11/21tracepoint: Remove smp_read_barrier_depends() from commentkernel/tracepoint.c+4 -50 replies
12/21lib/assoc_array: Remove smp_read_barrier_depends()lib/assoc_array.c+12 -250 replies
13/21mm/ksm: Remove now-redundant smp_read_barrier_depends()mm/ksm.c+1 -80 replies
14/21netfilter: Remove now-redundant smp_read_barrier_depends()net/ipv4/netfilter/arp_tables.c net/ipv4/netfilter/ip_tables.c net/ipv6/netfilter/ip6_tables.c+3 -180 replies
15/21keyring: Remove now-redundant smp_read_barrier_depends()security/keys/keyring.c+0 -72 replies
16/21drivers/infiniband: Remove now-redundant smp_read_barrier_depends()drivers/dma/ioat/dma.c drivers/infiniband/Kconfig drivers/infiniband/hw/hfi1/rc.c +9 more+1 -214 replies
17/21doc: De-emphasize smp_read_barrier_dependsDocumentation/RCU/Design/Requirements/Requirements.html Documentation/RCU/rcu_dereference.txt Documentation/RCU/whatisRCU.txt +2 more+9 -130 replies
18/21genetlink: Remove smp_read_barrier_depends() from commentinclude/linux/genetlink.h+1 -20 replies
19/21netlink: Remove smp_read_barrier_depends() from commentinclude/linux/netfilter/nfnetlink.h+1 -20 replies
20/21checkpatch: Add warnings for {smp_,}read_barrier_depends()scripts/checkpatch.pl+6 -05 replies
21/21drivers/vhost: Remove now-redundant read_barrier_depends()drivers/vhost/vhost.c+1 -636 replies

Reviews trailers per patch

5 of 21 patches have a Reviewed-by or Acked-by.

PatchSteven Rostedt (VMware)Mathieu DesnoyersTejun HeoJames MorrisJoe PerchesJason Gunthorpe
1/21
2/21
3/21
4/21
5/21A-b
6/21
7/21
8/21
9/21
10/21
11/21A-b A-b
12/21
13/21
14/21
15/21R-b
16/21A-b
17/21
18/21
19/21
20/21A-b
21/21

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 6 reviewers.

Read the v1 thread

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

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(-)