xdp: introduce xdp_return_frame_rx_napi
When sending an xdp_frame through xdp_do_redirect call, then error cases can happen where the xdp_frame needs to be dropped, and returning an -errno code isn't sufficient/possible any-longer (e.g. for cpumap case). This is already fully supported, by simply calling xdp_return_frame. This patch is an optimization, which provides xdp_return_frame_rx_napi, which is a faster variant for these error cases. It take advantage of the protection provided by XDP RX running under NAPI protection. This change is mostly relevant for drivers using the page_pool allocator as it can take advantage of this. (Tested with mlx5). Signed-off-by:Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by:
Alexei Starovoitov <ast@kernel.org>
Showing
- include/net/page_pool.h 3 additions, 2 deletionsinclude/net/page_pool.h
- include/net/xdp.h 1 addition, 0 deletionsinclude/net/xdp.h
- kernel/bpf/cpumap.c 1 addition, 1 deletionkernel/bpf/cpumap.c
- kernel/bpf/devmap.c 1 addition, 1 deletionkernel/bpf/devmap.c
- net/core/xdp.c 16 additions, 4 deletionsnet/core/xdp.c
Please register or sign in to comment