aboutsummaryrefslogtreecommitdiffstats
path: root/net/xdp/xsk_queue.h
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2018-09-07 10:18:46 +0200
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2018-09-25 13:13:15 -0700
commitf5bd91388e26557f64ca999e0006038c7a919308 (patch)
tree28d868b5c3ed674e3bc2e18cd179657d4301bd9d /net/xdp/xsk_queue.h
parenti40e: clean zero-copy XDP Tx ring on shutdown/reset (diff)
downloadlinux-dev-f5bd91388e26557f64ca999e0006038c7a919308.tar.xz
linux-dev-f5bd91388e26557f64ca999e0006038c7a919308.zip
net: xsk: add a simple buffer reuse queue
XSK UMEM is strongly single producer single consumer so reuse of frames is challenging. Add a simple "stash" of FILL packets to reuse for drivers to optionally make use of. This is useful when driver has to free (ndo_stop) or resize a ring with an active AF_XDP ZC socket. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'net/xdp/xsk_queue.h')
-rw-r--r--net/xdp/xsk_queue.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/xdp/xsk_queue.h b/net/xdp/xsk_queue.h
index 82252cccb4e0..bcb5cbb40419 100644
--- a/net/xdp/xsk_queue.h
+++ b/net/xdp/xsk_queue.h
@@ -258,4 +258,7 @@ void xskq_set_umem(struct xsk_queue *q, u64 size, u64 chunk_mask);
struct xsk_queue *xskq_create(u32 nentries, bool umem_queue);
void xskq_destroy(struct xsk_queue *q_ops);
+/* Executed by the core when the entire UMEM gets freed */
+void xsk_reuseq_destroy(struct xdp_umem *umem);
+
#endif /* _LINUX_XSK_QUEUE_H */