net/af_xdp: support shared UMEM
authorCiara Loftus <ciara.loftus@intel.com>
Wed, 23 Sep 2020 07:34:39 +0000 (07:34 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 30 Sep 2020 17:19:09 +0000 (19:19 +0200)
commit74b46340e2d4f6b4b00476ed3790580004f21341
tree2c173e60ee85d70c9136c26f9833f56854f05b0a
parent7c6e6aef870848cf887b2115d7c13bfcde6f4627
net/af_xdp: support shared UMEM

Kernel v5.10 will introduce the ability to efficiently share a UMEM
between AF_XDP sockets bound to different queue ids on the same or
different devices. This patch integrates that functionality into the AF_XDP
PMD.

A PMD will attempt to share a UMEM with others if the shared_umem=1 vdev
arg is set. UMEMs can only be shared across PMDs with the same mempool, up
to a limited number of PMDs goverened by the size of the given mempool.
Sharing UMEMs is not supported for non-zero-copy (aligned) mode.

The benefit of sharing UMEM across PMDs is a saving in memory due to not
having to register the UMEM multiple times. Throughput was measured to
remain within 2% of the default mode (not sharing UMEM).

A version of libbpf >= v0.2.0 is required and the appropriate pkg-config
file for libbpf must be installed such that meson can determine the
version.

Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
doc/guides/nics/af_xdp.rst
drivers/net/af_xdp/compat.h [new file with mode: 0644]
drivers/net/af_xdp/meson.build
drivers/net/af_xdp/rte_eth_af_xdp.c