]> 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)
commit2626a5e29a3747656cf5e6e55b0665f747a78f4f
treeaf863fd112a199148f11c746556393b48d9029d7
parent82883bbf43a77a0eeabc1ae538e84e40d00f9b61
parent96dd69ef2031b608d59d4ad77803837007e02cd8
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 319d2e405458
("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>