/Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/ |
D | pool.c | 23 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 …]
|
D | setup.c | 16 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 …]
|
D | pool.h | 10 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);
|
D | rx.c | 24 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 …]
|
D | setup.h | 12 struct mlx5e_xsk_param *xsk, 15 struct mlx5e_xsk_param *xsk, struct xsk_buff_pool *pool,
|
/Linux-v6.1/tools/testing/selftests/bpf/ |
D | xsk.c | 118 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 …]
|
D | xskxceiver.c | 295 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 …]
|
D | xsk.h | 255 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);
|
D | xskxceiver.h | 111 struct xsk_socket *xsk; member 137 struct xsk_socket_info *xsk; member
|
D | Makefile | 241 $(OUTPUT)/xsk.o: $(BPFOBJ) 242 $(OUTPUT)/xskxceiver: $(OUTPUT)/xsk.o
|
/Linux-v6.1/drivers/net/ethernet/mellanox/mlx5/core/en/ |
D | params.c | 18 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 …]
|
D | params.h | 58 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 …]
|
D | rx_res.h | 42 unsigned int ix, bool xsk);
|
D | xdp.h | 48 int mlx5e_xdp_max_mtu(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk);
|
D | xdp.c | 38 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()
|
D | rx_res.c | 553 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/ |
D | Makefile | 29 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 \
|
D | en_main.c | 665 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 …]
|
D | en.h | 327 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);
|
D | en_rx.c | 389 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()
|
D | en_stats.c | 2337 (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/ |
D | Makefile | 2 obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o xskmap.o
|
D | xsk_buff_pool.c | 133 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/ |
D | Makefile | 25 nfd3/xsk.o \
|
/Linux-v6.1/Documentation/networking/ |
D | af_xdp.rst | 212 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].
|