Björn Töpel [off-list ref] writes:
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!
@Andrii I kept the barriers in libbpf_util.h to separate userfacing
APIs (xsk.h) from internals.
@Toke I kept "barriers" but reworded. Acquire/release are also
barriers.
Right, that text is better - thanks!
Acked-by: Toke Høiland-Jørgensen <redacted>