Home
last modified time | relevance | path

Searched refs:xsk (Results 1 – 25 of 33) sorted by relevance

12

/Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/
Dpool.c23 static int mlx5e_xsk_get_pools(struct mlx5e_xsk *xsk) in mlx5e_xsk_get_pools() argument
25 if (!xsk->pools) { in mlx5e_xsk_get_pools()
26 xsk->pools = kcalloc(MLX5E_MAX_NUM_CHANNELS, in mlx5e_xsk_get_pools()
27 sizeof(*xsk->pools), GFP_KERNEL); in mlx5e_xsk_get_pools()
28 if (unlikely(!xsk->pools)) in mlx5e_xsk_get_pools()
32 xsk->refcnt++; in mlx5e_xsk_get_pools()
33 xsk->ever_used = true; in mlx5e_xsk_get_pools()
38 static void mlx5e_xsk_put_pools(struct mlx5e_xsk *xsk) in mlx5e_xsk_put_pools() argument
40 if (!--xsk->refcnt) { in mlx5e_xsk_put_pools()
41 kfree(xsk->pools); in mlx5e_xsk_put_pools()
[all …]
Dsetup.c16 struct mlx5e_xsk_param *xsk, in mlx5e_validate_xsk_param() argument
20 if (xsk->chunk_size > PAGE_SIZE || xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) in mlx5e_validate_xsk_param()
28 return !mlx5e_mpwrq_validate_xsk(mdev, params, xsk); in mlx5e_validate_xsk_param()
30 return mlx5e_rx_is_linear_skb(mdev, params, xsk); in mlx5e_validate_xsk_param()
36 struct mlx5e_xsk_param *xsk, in mlx5e_build_xsk_cparam() argument
40 mlx5e_build_rq_param(mdev, params, xsk, q_counter, &cparam->rq); in mlx5e_build_xsk_cparam()
41 mlx5e_build_xdpsq_param(mdev, params, xsk, &cparam->xdp_sq); in mlx5e_build_xsk_cparam()
47 struct mlx5e_xsk_param *xsk, in mlx5e_init_xsk_rq() argument
70 err = mlx5e_rq_set_handlers(rq, params, xsk); in mlx5e_init_xsk_rq()
79 struct mlx5e_xsk_param *xsk) in mlx5e_open_xsk_rq() argument
[all …]
Dpool.h10 struct mlx5e_xsk *xsk, u16 ix) in mlx5e_xsk_get_pool() argument
12 if (!xsk || !xsk->pools) in mlx5e_xsk_get_pool()
18 return xsk->pools[ix]; in mlx5e_xsk_get_pool()
22 void mlx5e_build_xsk_param(struct xsk_buff_pool *pool, struct mlx5e_xsk_param *xsk);
Drx.c24 BUILD_BUG_ON(sizeof(wi->alloc_units[0]) != sizeof(wi->alloc_units[0].xsk)); in mlx5e_xsk_alloc_rx_mpwqe()
35 wi->alloc_units[batch].xsk = xsk_buff_alloc(rq->xsk_pool); in mlx5e_xsk_alloc_rx_mpwqe()
36 if (unlikely(!wi->alloc_units[batch].xsk)) in mlx5e_xsk_alloc_rx_mpwqe()
46 dma_addr_t addr = xsk_buff_xdp_get_frame_dma(wi->alloc_units[i].xsk); in mlx5e_xsk_alloc_rx_mpwqe()
54 dma_addr_t addr = xsk_buff_xdp_get_frame_dma(wi->alloc_units[i].xsk); in mlx5e_xsk_alloc_rx_mpwqe()
65 dma_addr_t addr = xsk_buff_xdp_get_frame_dma(wi->alloc_units[i].xsk); in mlx5e_xsk_alloc_rx_mpwqe()
90 dma_addr_t addr = xsk_buff_xdp_get_frame_dma(wi->alloc_units[i].xsk); in mlx5e_xsk_alloc_rx_mpwqe()
135 xsk_buff_free(wi->alloc_units[batch].xsk); in mlx5e_xsk_alloc_rx_mpwqe()
154 sizeof(rq->wqe.alloc_units[0].xsk)); in mlx5e_xsk_alloc_rx_wqes_batched()
175 addr = xsk_buff_xdp_get_frame_dma(frag->au->xsk); in mlx5e_xsk_alloc_rx_wqes_batched()
[all …]
Dsetup.h12 struct mlx5e_xsk_param *xsk,
15 struct mlx5e_xsk_param *xsk, struct xsk_buff_pool *pool,
/Linux-v6.1/tools/testing/selftests/bpf/
Dxsk.c118 int xsk_socket__fd(const struct xsk_socket *xsk) in xsk_socket__fd() argument
120 return xsk ? xsk->fd : -EINVAL; in xsk_socket__fd()
388 static int xsk_load_xdp_prog(struct xsk_socket *xsk) in xsk_load_xdp_prog() argument
391 struct xsk_ctx *ctx = xsk->ctx; in xsk_load_xdp_prog()
490 static int xsk_create_bpf_link(struct xsk_socket *xsk) in xsk_create_bpf_link() argument
493 struct xsk_ctx *ctx = xsk->ctx; in xsk_create_bpf_link()
498 err = bpf_xdp_query_id(ctx->ifindex, xsk->config.xdp_flags, &prog_id); in xsk_create_bpf_link()
512 opts.flags = xsk->config.xdp_flags & ~(XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_REPLACE); in xsk_create_bpf_link()
543 static int xsk_get_max_queues(struct xsk_socket *xsk) in xsk_get_max_queues() argument
546 struct xsk_ctx *ctx = xsk->ctx; in xsk_get_max_queues()
[all …]
Dxskxceiver.c295 static void enable_busy_poll(struct xsk_socket_info *xsk) in enable_busy_poll() argument
300 if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_PREFER_BUSY_POLL, in enable_busy_poll()
305 if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_BUSY_POLL, in enable_busy_poll()
310 if (setsockopt(xsk_socket__fd(xsk->xsk), SOL_SOCKET, SO_BUSY_POLL_BUDGET, in enable_busy_poll()
315 static int __xsk_configure_socket(struct xsk_socket_info *xsk, struct xsk_umem_info *umem, in __xsk_configure_socket() argument
322 xsk->umem = umem; in __xsk_configure_socket()
323 cfg.rx_size = xsk->rxqsize; in __xsk_configure_socket()
331 txr = ifobject->tx_on ? &xsk->tx : NULL; in __xsk_configure_socket()
332 rxr = ifobject->rx_on ? &xsk->rx : NULL; in __xsk_configure_socket()
333 return xsk_socket__create(&xsk->xsk, ifobject->ifname, 0, umem->umem, rxr, txr, &cfg); in __xsk_configure_socket()
[all …]
Dxsk.h255 int xsk_socket__fd(const struct xsk_socket *xsk);
272 int xsk_setup_xdp_prog_xsk(struct xsk_socket *xsk, int *xsks_map_fd);
274 int xsk_socket__update_xskmap(struct xsk_socket *xsk, int xsks_map_fd);
293 int xsk_socket__create(struct xsk_socket **xsk,
310 void xsk_socket__delete(struct xsk_socket *xsk);
Dxskxceiver.h111 struct xsk_socket *xsk; member
137 struct xsk_socket_info *xsk; member
DMakefile241 $(OUTPUT)/xsk.o: $(BPFOBJ)
242 $(OUTPUT)/xskxceiver: $(OUTPUT)/xsk.o
/Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/en/
Dparams.c18 u8 mlx5e_mpwrq_page_shift(struct mlx5_core_dev *mdev, struct mlx5e_xsk_param *xsk) in mlx5e_mpwrq_page_shift() argument
20 u8 req_page_shift = xsk ? order_base_2(xsk->chunk_size) : PAGE_SHIFT; in mlx5e_mpwrq_page_shift()
24 if (WARN_ON_ONCE(!xsk && req_page_shift < min_page_shift)) in mlx5e_mpwrq_page_shift()
31 mlx5e_mpwrq_umr_mode(struct mlx5_core_dev *mdev, struct mlx5e_xsk_param *xsk) in mlx5e_mpwrq_umr_mode() argument
42 u8 page_shift = mlx5e_mpwrq_page_shift(mdev, xsk); in mlx5e_mpwrq_umr_mode()
43 bool unaligned = xsk ? xsk->unaligned : false; in mlx5e_mpwrq_umr_mode()
46 if (xsk) { in mlx5e_mpwrq_umr_mode()
47 oversized = xsk->chunk_size < (1 << page_shift); in mlx5e_mpwrq_umr_mode()
48 WARN_ON_ONCE(xsk->chunk_size > (1 << page_shift)); in mlx5e_mpwrq_umr_mode()
64 if (xsk->chunk_size % 3 == 0 && is_power_of_2(xsk->chunk_size / 3)) in mlx5e_mpwrq_umr_mode()
[all …]
Dparams.h58 u8 mlx5e_mpwrq_page_shift(struct mlx5_core_dev *mdev, struct mlx5e_xsk_param *xsk);
60 mlx5e_mpwrq_umr_mode(struct mlx5_core_dev *mdev, struct mlx5e_xsk_param *xsk);
87 struct mlx5e_xsk_param *xsk);
93 struct mlx5e_xsk_param *xsk);
96 struct mlx5e_xsk_param *xsk);
99 struct mlx5e_xsk_param *xsk);
102 struct mlx5e_xsk_param *xsk);
117 struct mlx5e_xsk_param *xsk);
120 struct mlx5e_xsk_param *xsk);
124 struct mlx5e_xsk_param *xsk);
[all …]
Drx_res.h42 unsigned int ix, bool xsk);
Dxdp.h48 int mlx5e_xdp_max_mtu(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk);
Dxdp.c38 int mlx5e_xdp_max_mtu(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk) in mlx5e_xdp_max_mtu() argument
40 int hr = mlx5e_get_linear_rq_headroom(params, xsk); in mlx5e_xdp_max_mtu()
Drx_res.c553 unsigned int ix, bool xsk) in mlx5e_rx_res_xsk_update() argument
555 if (xsk) in mlx5e_rx_res_xsk_update()
/Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/
DMakefile29 en/reporter_tx.o en/reporter_rx.o en/params.o en/xsk/pool.o \
30 en/xsk/setup.o en/xsk/rx.o en/xsk/tx.o en/devlink.o en/ptp.o \
Den_main.c665 struct mlx5e_xsk_param *xsk, in mlx5e_alloc_rq() argument
686 rq->buff.headroom = mlx5e_get_rq_headroom(mdev, params, xsk); in mlx5e_alloc_rq()
706 rq->mpwqe.page_shift = mlx5e_mpwrq_page_shift(mdev, xsk); in mlx5e_alloc_rq()
707 rq->mpwqe.umr_mode = mlx5e_mpwrq_umr_mode(mdev, xsk); in mlx5e_alloc_rq()
719 mlx5e_mpwqe_get_log_rq_size(mdev, params, xsk); in mlx5e_alloc_rq()
721 rq->mpwqe.log_stride_sz = mlx5e_mpwqe_get_log_stride_size(mdev, params, xsk); in mlx5e_alloc_rq()
723 BIT(mlx5e_mpwqe_get_log_num_strides(mdev, params, xsk)); in mlx5e_alloc_rq()
768 if (xsk) { in mlx5e_alloc_rq()
1168 struct mlx5e_xsk_param *xsk, int node, in mlx5e_open_rq() argument
1177 err = mlx5e_alloc_rq(params, xsk, param, node, rq); in mlx5e_open_rq()
[all …]
Den.h327 struct mlx5e_xsk *xsk; member
469 struct xdp_buff *xsk; member
635 int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk);
962 struct mlx5e_xsk xsk; member
1040 struct mlx5e_xsk_param *xsk, int node,
1232 void mlx5e_build_nic_params(struct mlx5e_priv *priv, struct mlx5e_xsk *xsk, u16 mtu);
Den_rx.c389 xsk_buff_free(wi->au->xsk); in mlx5e_free_rx_wqe()
470 xsk_buff_free(alloc_units[i].xsk); in mlx5e_free_rx_mpwqe()
2400 int mlx5e_rq_set_handlers(struct mlx5e_rq *rq, struct mlx5e_params *params, bool xsk) in mlx5e_rq_set_handlers() argument
2408 rq->mpwqe.skb_from_cqe_mpwrq = xsk ? in mlx5e_rq_set_handlers()
2432 rq->wqe.skb_from_cqe = xsk ? in mlx5e_rq_set_handlers()
Den_stats.c2337 (NUM_XSKRQ_STATS * max_nch * priv->xsk.ever_used) + in MLX5E_DECLARE_STATS_GRP_OP_NUM_STATS()
2338 (NUM_XSKSQ_STATS * max_nch * priv->xsk.ever_used); in MLX5E_DECLARE_STATS_GRP_OP_NUM_STATS()
2343 bool is_xsk = priv->xsk.ever_used; in MLX5E_DECLARE_STATS_GRP_OP_FILL_STRS()
2385 bool is_xsk = priv->xsk.ever_used; in MLX5E_DECLARE_STATS_GRP_OP_FILL_STATS()
/Linux-v6.1/net/xdp/
DMakefile2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o xskmap.o
Dxsk_buff_pool.c133 bpf.xsk.pool = NULL; in xp_disable_drv_zc()
134 bpf.xsk.queue_id = pool->queue_id; in xp_disable_drv_zc()
188 bpf.xsk.pool = pool; in xp_assign_dev()
189 bpf.xsk.queue_id = queue_id; in xp_assign_dev()
/Linux-v6.1/drivers/net/ethernet/netronome/nfp/
DMakefile25 nfd3/xsk.o \
/Linux-v6.1/Documentation/networking/
Daf_xdp.rst212 in tools/lib/bpf/xsk.h for facilitating the use of AF_XDP. It
464 The XDP code sample included in tools/lib/bpf/xsk.c is the following:
558 code in tools/lib/bpf/xsk.[ch].

12