]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'load-acquire/store-release barriers for'
authorAndrii Nakryiko <andrii@kernel.org>
Mon, 8 Mar 2021 16:51:01 +0000 (08:51 -0800)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 8 Mar 2021 16:52:45 +0000 (08:52 -0800)
commitbbb41728e61a602ec76cbfec2a49ccc763d305b7
treeaf863fd112a199148f11c746556393b48d9029d7
parent299194a91451263020c73dd2a3b7e0218c88dbd0
parent291471dd1559528a4c2ad5026eff94ed1030562b
Merge branch 'load-acquire/store-release barriers for'

Björn Töpel says:

====================

This two-patch series introduces load-acquire/store-release barriers
for the AF_XDP rings.

For most contemporary architectures, this is more effective than a
SPSC ring based on smp_{r,w,}mb() barriers. More importantly,
load-acquire/store-release semantics make the ring code easier to
follow.

This is effectively the change done in commit 6c43c091bdc5
("documentation: Update circular buffer for
load-acquire/store-release"), but for the AF_XDP rings.

Both libbpf and the kernel-side are updated.

Full details are outlined in the commits!

Thanks to the LKMM-folks (Paul/Alan/Will) for helping me out in this
complicated matter!

Changelog

v1[1]->v2:
* Expanded the commit message for patch 1, and included the LKMM
  litmus tests. Hopefully this clear things up. (Daniel)

* Clarified why the smp_mb()/smp_load_acquire() is not needed in (A);
  control dependency with load to store. (Toke)

[1] https://lore.kernel.org/bpf/20210301104318.263262-1-bjorn.topel@gmail.com/

Thanks,
Björn
====================

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>