Re: [PATCH 00/13] Finish off [smp_]read_barrier_depends()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 08, 2019 at 05:01:07PM +0000, Will Deacon wrote:
> Hi all,
> 
> Although [smp_]read_barrier_depends() became part of READ_ONCE() in
> commit 76ebbe78f739 ("locking/barriers: Add implicit
> smp_read_barrier_depends() to READ_ONCE()"), it still limps on in the
> Linux memory model with the sinister hope of attracting innocent new
> users so that it becomes impossible to remove altogether.
> 
> Let's strike before it's too late: there's only one user outside of
> arch/alpha/ and that lives in the vhost code which I don't think you
> can actually compile for Alpha. Even if you could, it appears to be
> redundant. The rest of these patches remove any mention of the barrier
> from Documentation and comments, as well as removing its use from the
> Alpha backend and finally dropping it from the memory model completely.
> 
> After this series, there are still two places where it is mentioned:
> 
>   1. The Korean translation of memory-barriers.txt. I'd appreciate some
>      help fixing this because it's not entirely a straightforward
>      deletion.
> 
>   2. The virtio vring tests under tools/. This is userspace code so I'm
>      not too fussed about it.
> 
> There's a chunk of header reshuffling at the start of the series so that
> READ_ONCE() can sensibly be overridden by arch code.
> 
> Feedback welcome.

For the series:

Acked-by: Paul E. McKenney <paulmck@xxxxxxxxxx>

> Cheers,
> 
> Will
> 
> Cc: Yunjae Lee <lyj7694@xxxxxxxxx>
> Cc: SeongJae Park <sj38.park@xxxxxxxxx>
> Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxx>
> Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> Cc: Matt Turner <mattst88@xxxxxxxxx>
> Cc: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx>
> Cc: Richard Henderson <rth@xxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> Cc: "Michael S. Tsirkin" <mst@xxxxxxxxxx>
> Cc: Jason Wang <jasowang@xxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Joe Perches <joe@xxxxxxxxxxx>
> Cc: Boqun Feng <boqun.feng@xxxxxxxxx>
> Cc: linux-alpha@xxxxxxxxxxxxxxx
> Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
> 
> --->8
> 
> Will Deacon (13):
>   compiler.h: Split {READ,WRITE}_ONCE definitions out into rwonce.h
>   READ_ONCE: Undefine internal __READ_ONCE_SIZE macro after use
>   READ_ONCE: Allow __READ_ONCE_SIZE cases to be overridden by the
>     architecture
>   vhost: Remove redundant use of read_barrier_depends() barrier
>   alpha: Override READ_ONCE() with barriered implementation
>   READ_ONCE: Remove smp_read_barrier_depends() invocation
>   alpha: Replace smp_read_barrier_depends() usage with smp_[r]mb()
>   locking/barriers: Remove definitions for [smp_]read_barrier_depends()
>   Documentation/barriers: Remove references to
>     [smp_]read_barrier_depends()
>   tools/memory-model: Remove smp_read_barrier_depends() from informal
>     doc
>   powerpc: Remove comment about read_barrier_depends()
>   include/linux: Remove smp_read_barrier_depends() from comments
>   checkpatch: Remove checks relating to [smp_]read_barrier_depends()
> 
>  .../RCU/Design/Requirements/Requirements.html |  11 +-
>  Documentation/memory-barriers.txt             | 156 +-----------------
>  arch/alpha/include/asm/atomic.h               |  16 +-
>  arch/alpha/include/asm/barrier.h              |  61 +------
>  arch/alpha/include/asm/pgtable.h              |  10 +-
>  arch/alpha/include/asm/rwonce.h               |  22 +++
>  arch/powerpc/include/asm/barrier.h            |   2 -
>  drivers/vhost/vhost.c                         |   5 -
>  include/asm-generic/Kbuild                    |   1 +
>  include/asm-generic/barrier.h                 |  17 --
>  include/asm-generic/rwonce.h                  | 131 +++++++++++++++
>  include/linux/compiler.h                      | 114 +------------
>  include/linux/compiler_attributes.h           |  12 ++
>  include/linux/percpu-refcount.h               |   2 +-
>  include/linux/ptr_ring.h                      |   2 +-
>  mm/memory.c                                   |   2 +-
>  scripts/checkpatch.pl                         |   9 +-
>  .../Documentation/explanation.txt             |  26 ++-
>  18 files changed, 217 insertions(+), 382 deletions(-)
>  create mode 100644 arch/alpha/include/asm/rwonce.h
>  create mode 100644 include/asm-generic/rwonce.h
> 
> -- 
> 2.24.0.rc1.363.gb1bccd3e3d-goog
> 



[Index of Archives]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux