xsk: Create and free buffer pool independently from umem

Create and free the buffer pool independently from the umem. Move
these operations that are performed on the buffer pool from the
umem create and destroy functions to new create and destroy
functions just for the buffer pool. This so that in later commits
we can instantiate multiple buffer pools per umem when sharing a
umem between HW queues and/or devices. We also erradicate the
back pointer from the umem to the buffer pool as this will not
work when we introduce the possibility to have multiple buffer
pools per umem.

Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Björn Töpel <bjorn.topel@intel.com>
Link: https://lore.kernel.org/bpf/1598603189-32145-4-git-send-email-magnus.karlsson@intel.com
This commit is contained in:
Magnus Karlsson
2020-08-28 10:26:17 +02:00
committed by Daniel Borkmann
parent c4655761d3
commit 1c1efc2af1
8 changed files with 241 additions and 192 deletions

View File

@ -20,13 +20,12 @@ struct xdp_buff;
struct xdp_umem {
struct xsk_queue *fq;
struct xsk_queue *cq;
struct xsk_buff_pool *pool;
u64 size;
u32 headroom;
u32 chunk_size;
u32 chunks;
struct user_struct *user;
refcount_t users;
struct work_struct work;
struct page **pgs;
u32 npgs;
u16 queue_id;