From: Kevin Laatz <kevin.laatz@intel.com> To: netdev@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, bjorn.topel@intel.com, magnus.karlsson@intel.com, jakub.kicinski@netronome.com, jonathan.lemon@gmail.com, saeedm@mellanox.com, maximmi@mellanox.com, stephen@networkplumber.org Cc: bruce.richardson@intel.com, ciara.loftus@intel.com, bpf@vger.kernel.org, intel-wired-lan@lists.osuosl.org Subject: [PATCH bpf-next v6 07/12] net/mlx5e: Allow XSK frames smaller than a page Date: Tue, 27 Aug 2019 02:25:26 +0000 [thread overview] Message-ID: <20190827022531.15060-8-kevin.laatz@intel.com> (raw) In-Reply-To: <20190827022531.15060-1-kevin.laatz@intel.com> From: Maxim Mikityanskiy <maximmi@mellanox.com> Relax the requirements to the XSK frame size to allow it to be smaller than a page and even not a power of two. The current implementation can work in this mode, both with Striding RQ and without it. The code that checks `mtu + headroom <= XSK frame size` is modified accordingly. Any frame size between 2048 and PAGE_SIZE is accepted. Functions that worked with pages only now work with XSK frames, even if their size is different from PAGE_SIZE. With XSK queues, regardless of the frame size, Striding RQ uses the stride size of PAGE_SIZE, and UMR MTTs are posted using starting addresses of frames, but PAGE_SIZE as page size. MTU guarantees that no packet data will overlap with other frames. UMR MTT size is made equal to the stride size of the RQ, because UMEM frames may come in random order, and we need to handle them one by one. PAGE_SIZE is just a power of two that is bigger than any allowed XSK frame size, and also it doesn't require making additional changes to the code. Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com> Reviewed-by: Saeed Mahameed <saeedm@mellanox.com> --- .../ethernet/mellanox/mlx5/core/en/params.c | 23 +++++++++++++++---- .../ethernet/mellanox/mlx5/core/en/params.h | 2 ++ .../ethernet/mellanox/mlx5/core/en/xsk/rx.c | 2 +- .../mellanox/mlx5/core/en/xsk/setup.c | 15 ++++++++---- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c index 79301d116667..eb2e1f2138e4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -25,18 +25,33 @@ u16 mlx5e_get_linear_rq_headroom(struct mlx5e_params *params, return headroom; } -u32 mlx5e_rx_get_linear_frag_sz(struct mlx5e_params *params, - struct mlx5e_xsk_param *xsk) +u32 mlx5e_rx_get_min_frag_sz(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk) { u32 hw_mtu = MLX5E_SW2HW_MTU(params, params->sw_mtu); u16 linear_rq_headroom = mlx5e_get_linear_rq_headroom(params, xsk); - u32 frag_sz = linear_rq_headroom + hw_mtu; + + return linear_rq_headroom + hw_mtu; +} + +u32 mlx5e_rx_get_linear_frag_sz(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk) +{ + u32 frag_sz = mlx5e_rx_get_min_frag_sz(params, xsk); /* AF_XDP doesn't build SKBs in place. */ if (!xsk) frag_sz = MLX5_SKB_FRAG_SZ(frag_sz); - /* XDP in mlx5e doesn't support multiple packets per page. */ + /* XDP in mlx5e doesn't support multiple packets per page. AF_XDP is a + * special case. It can run with frames smaller than a page, as it + * doesn't allocate pages dynamically. However, here we pretend that + * fragments are page-sized: it allows to treat XSK frames like pages + * by redirecting alloc and free operations to XSK rings and by using + * the fact there are no multiple packets per "page" (which is a frame). + * The latter is important, because frames may come in a random order, + * and we will have trouble assemblying a real page of multiple frames. + */ if (mlx5e_rx_is_xdp(params, xsk)) frag_sz = max_t(u32, frag_sz, PAGE_SIZE); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h index 3a615d663d84..989d8f429438 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h @@ -76,6 +76,8 @@ static inline bool mlx5e_qid_validate(const struct mlx5e_profile *profile, u16 mlx5e_get_linear_rq_headroom(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk); +u32 mlx5e_rx_get_min_frag_sz(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk); u32 mlx5e_rx_get_linear_frag_sz(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk); u8 mlx5e_mpwqe_log_pkts_per_wqe(struct mlx5e_params *params, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c index 7c49a66d28c9..475b6bd5d29b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c @@ -105,7 +105,7 @@ struct sk_buff *mlx5e_xsk_skb_from_cqe_mpwrq_linear(struct mlx5e_rq *rq, /* head_offset is not used in this function, because di->xsk.data and * di->addr point directly to the necessary place. Furthermore, in the - * current implementation, one page = one packet = one frame, so + * current implementation, UMR pages are mapped to XSK frames, so * head_offset should always be 0. */ WARN_ON_ONCE(head_offset); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c index f701e4f3c076..d549f770cb4f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c @@ -4,18 +4,23 @@ #include "setup.h" #include "en/params.h" +/* It matches XDP_UMEM_MIN_CHUNK_SIZE, but as this constant is private and may + * change unexpectedly, and mlx5e has a minimum valid stride size for striding + * RQ, keep this check in the driver. + */ +#define MLX5E_MIN_XSK_CHUNK_SIZE 2048 + bool mlx5e_validate_xsk_param(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk, struct mlx5_core_dev *mdev) { - /* AF_XDP doesn't support frames larger than PAGE_SIZE, and the current - * mlx5e XDP implementation doesn't support multiple packets per page. - */ - if (xsk->chunk_size != PAGE_SIZE) + /* AF_XDP doesn't support frames larger than PAGE_SIZE. */ + if (xsk->chunk_size > PAGE_SIZE || + xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) return false; /* Current MTU and XSK headroom don't allow packets to fit the frames. */ - if (mlx5e_rx_get_linear_frag_sz(params, xsk) > xsk->chunk_size) + if (mlx5e_rx_get_min_frag_sz(params, xsk) > xsk->chunk_size) return false; /* frag_sz is different for regular and XSK RQs, so ensure that linear -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Kevin Laatz <kevin.laatz@intel.com> To: intel-wired-lan@osuosl.org Subject: [Intel-wired-lan] [PATCH bpf-next v6 07/12] net/mlx5e: Allow XSK frames smaller than a page Date: Tue, 27 Aug 2019 02:25:26 +0000 [thread overview] Message-ID: <20190827022531.15060-8-kevin.laatz@intel.com> (raw) In-Reply-To: <20190827022531.15060-1-kevin.laatz@intel.com> From: Maxim Mikityanskiy <maximmi@mellanox.com> Relax the requirements to the XSK frame size to allow it to be smaller than a page and even not a power of two. The current implementation can work in this mode, both with Striding RQ and without it. The code that checks `mtu + headroom <= XSK frame size` is modified accordingly. Any frame size between 2048 and PAGE_SIZE is accepted. Functions that worked with pages only now work with XSK frames, even if their size is different from PAGE_SIZE. With XSK queues, regardless of the frame size, Striding RQ uses the stride size of PAGE_SIZE, and UMR MTTs are posted using starting addresses of frames, but PAGE_SIZE as page size. MTU guarantees that no packet data will overlap with other frames. UMR MTT size is made equal to the stride size of the RQ, because UMEM frames may come in random order, and we need to handle them one by one. PAGE_SIZE is just a power of two that is bigger than any allowed XSK frame size, and also it doesn't require making additional changes to the code. Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com> Reviewed-by: Saeed Mahameed <saeedm@mellanox.com> --- .../ethernet/mellanox/mlx5/core/en/params.c | 23 +++++++++++++++---- .../ethernet/mellanox/mlx5/core/en/params.h | 2 ++ .../ethernet/mellanox/mlx5/core/en/xsk/rx.c | 2 +- .../mellanox/mlx5/core/en/xsk/setup.c | 15 ++++++++---- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c index 79301d116667..eb2e1f2138e4 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -25,18 +25,33 @@ u16 mlx5e_get_linear_rq_headroom(struct mlx5e_params *params, return headroom; } -u32 mlx5e_rx_get_linear_frag_sz(struct mlx5e_params *params, - struct mlx5e_xsk_param *xsk) +u32 mlx5e_rx_get_min_frag_sz(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk) { u32 hw_mtu = MLX5E_SW2HW_MTU(params, params->sw_mtu); u16 linear_rq_headroom = mlx5e_get_linear_rq_headroom(params, xsk); - u32 frag_sz = linear_rq_headroom + hw_mtu; + + return linear_rq_headroom + hw_mtu; +} + +u32 mlx5e_rx_get_linear_frag_sz(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk) +{ + u32 frag_sz = mlx5e_rx_get_min_frag_sz(params, xsk); /* AF_XDP doesn't build SKBs in place. */ if (!xsk) frag_sz = MLX5_SKB_FRAG_SZ(frag_sz); - /* XDP in mlx5e doesn't support multiple packets per page. */ + /* XDP in mlx5e doesn't support multiple packets per page. AF_XDP is a + * special case. It can run with frames smaller than a page, as it + * doesn't allocate pages dynamically. However, here we pretend that + * fragments are page-sized: it allows to treat XSK frames like pages + * by redirecting alloc and free operations to XSK rings and by using + * the fact there are no multiple packets per "page" (which is a frame). + * The latter is important, because frames may come in a random order, + * and we will have trouble assemblying a real page of multiple frames. + */ if (mlx5e_rx_is_xdp(params, xsk)) frag_sz = max_t(u32, frag_sz, PAGE_SIZE); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h index 3a615d663d84..989d8f429438 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h @@ -76,6 +76,8 @@ static inline bool mlx5e_qid_validate(const struct mlx5e_profile *profile, u16 mlx5e_get_linear_rq_headroom(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk); +u32 mlx5e_rx_get_min_frag_sz(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk); u32 mlx5e_rx_get_linear_frag_sz(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk); u8 mlx5e_mpwqe_log_pkts_per_wqe(struct mlx5e_params *params, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c index 7c49a66d28c9..475b6bd5d29b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c @@ -105,7 +105,7 @@ struct sk_buff *mlx5e_xsk_skb_from_cqe_mpwrq_linear(struct mlx5e_rq *rq, /* head_offset is not used in this function, because di->xsk.data and * di->addr point directly to the necessary place. Furthermore, in the - * current implementation, one page = one packet = one frame, so + * current implementation, UMR pages are mapped to XSK frames, so * head_offset should always be 0. */ WARN_ON_ONCE(head_offset); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c index f701e4f3c076..d549f770cb4f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c @@ -4,18 +4,23 @@ #include "setup.h" #include "en/params.h" +/* It matches XDP_UMEM_MIN_CHUNK_SIZE, but as this constant is private and may + * change unexpectedly, and mlx5e has a minimum valid stride size for striding + * RQ, keep this check in the driver. + */ +#define MLX5E_MIN_XSK_CHUNK_SIZE 2048 + bool mlx5e_validate_xsk_param(struct mlx5e_params *params, struct mlx5e_xsk_param *xsk, struct mlx5_core_dev *mdev) { - /* AF_XDP doesn't support frames larger than PAGE_SIZE, and the current - * mlx5e XDP implementation doesn't support multiple packets per page. - */ - if (xsk->chunk_size != PAGE_SIZE) + /* AF_XDP doesn't support frames larger than PAGE_SIZE. */ + if (xsk->chunk_size > PAGE_SIZE || + xsk->chunk_size < MLX5E_MIN_XSK_CHUNK_SIZE) return false; /* Current MTU and XSK headroom don't allow packets to fit the frames. */ - if (mlx5e_rx_get_linear_frag_sz(params, xsk) > xsk->chunk_size) + if (mlx5e_rx_get_min_frag_sz(params, xsk) > xsk->chunk_size) return false; /* frag_sz is different for regular and XSK RQs, so ensure that linear -- 2.17.1
next prev parent reply other threads:[~2019-08-27 10:41 UTC|newest] Thread overview: 274+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-20 9:09 [PATCH 00/11] XDP unaligned chunk placement support Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 9:09 ` [PATCH 01/11] i40e: simplify Rx buffer recycle Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 14:29 ` Björn Töpel 2019-06-24 14:29 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 02/11] ixgbe: " Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 14:30 ` Björn Töpel 2019-06-24 14:30 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 03/11] xdp: add offset param to zero_copy_allocator Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 14:31 ` Björn Töpel 2019-06-24 14:31 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-24 19:23 ` Jakub Kicinski 2019-06-24 19:23 ` [Intel-wired-lan] " Jakub Kicinski 2019-06-25 13:14 ` Laatz, Kevin 2019-06-25 13:14 ` [Intel-wired-lan] " Laatz, Kevin 2019-06-20 9:09 ` [PATCH 04/11] i40e: add offset to zca_free Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 14:32 ` Björn Töpel 2019-06-24 14:32 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 05/11] ixgbe: " Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 14:32 ` Björn Töpel 2019-06-24 14:32 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 06/11] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:29 ` Björn Töpel 2019-06-24 15:29 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 07/11] libbpf: add flags to umem config Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:30 ` Björn Töpel 2019-06-24 15:30 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 08/11] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:31 ` Björn Töpel 2019-06-24 15:31 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 09/11] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:35 ` Björn Töpel 2019-06-24 15:35 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 10/11] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:36 ` Björn Töpel 2019-06-24 15:36 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-20 9:09 ` [PATCH 11/11] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-06-20 9:09 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:34 ` Björn Töpel 2019-06-24 15:34 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-07-16 3:06 ` [PATCH v2 00/10] XDP unaligned chunk placement support Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-16 3:06 ` [PATCH v2 01/10] i40e: simplify Rx buffer recycle Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-19 17:19 ` Bowers, AndrewX 2019-07-19 17:19 ` Bowers, AndrewX 2019-07-16 3:06 ` [PATCH v2 02/10] ixgbe: " Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-19 17:20 ` Bowers, AndrewX 2019-07-19 17:20 ` Bowers, AndrewX 2019-07-16 3:06 ` [PATCH v2 03/10] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-19 17:21 ` Bowers, AndrewX 2019-07-19 17:21 ` Bowers, AndrewX 2019-07-16 3:06 ` [PATCH v2 04/10] i40e: modify driver for handling offsets Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-19 17:22 ` Bowers, AndrewX 2019-07-19 17:22 ` Bowers, AndrewX 2019-07-16 3:06 ` [PATCH v2 05/10] ixgbe: " Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-19 17:22 ` Bowers, AndrewX 2019-07-19 17:22 ` Bowers, AndrewX 2019-07-16 3:06 ` [PATCH v2 06/10] libbpf: add flags to umem config Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-16 3:06 ` [PATCH v2 07/10] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-16 3:06 ` [PATCH v2 08/10] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-16 3:06 ` [PATCH v2 09/10] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-16 3:06 ` [PATCH v2 10/10] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-07-16 3:06 ` [Intel-wired-lan] " Kevin Laatz 2019-07-23 21:08 ` [PATCH v2 00/10] XDP unaligned chunk placement support Alexei Starovoitov 2019-07-23 21:08 ` [Intel-wired-lan] " Alexei Starovoitov 2019-07-24 13:25 ` Magnus Karlsson 2019-07-24 13:25 ` Magnus Karlsson 2019-07-25 15:43 ` Jonathan Lemon 2019-07-25 15:43 ` Jonathan Lemon 2019-07-24 5:10 ` [PATCH bpf-next v3 00/11] " Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 01/11] i40e: simplify Rx buffer recycle Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 02/11] ixgbe: " Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 03/11] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-25 2:22 ` Jakub Kicinski 2019-07-25 2:22 ` [Intel-wired-lan] " Jakub Kicinski 2019-07-25 17:01 ` Laatz, Kevin 2019-07-25 17:01 ` [Intel-wired-lan] " Laatz, Kevin 2019-07-25 9:27 ` Maxim Mikityanskiy 2019-07-25 9:27 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-07-25 17:00 ` Laatz, Kevin 2019-07-25 17:00 ` [Intel-wired-lan] " Laatz, Kevin 2019-07-25 10:08 ` Maxim Mikityanskiy 2019-07-25 10:08 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-07-25 15:39 ` Jonathan Lemon 2019-07-25 15:39 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-26 9:47 ` Laatz, Kevin 2019-07-26 9:58 ` Laatz, Kevin 2019-07-24 5:10 ` [PATCH bpf-next v3 04/11] i40e: modify driver for handling offsets Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 05/11] ixgbe: " Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 06/11] mlx5e: " Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-25 10:15 ` Maxim Mikityanskiy 2019-07-25 10:15 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-07-25 17:00 ` Laatz, Kevin 2019-07-25 17:00 ` [Intel-wired-lan] " Laatz, Kevin 2019-07-24 5:10 ` [PATCH bpf-next v3 07/11] libbpf: add flags to umem config Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 08/11] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-25 9:43 ` Maxim Mikityanskiy 2019-07-25 9:43 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-07-25 17:00 ` Laatz, Kevin 2019-07-25 17:00 ` [Intel-wired-lan] " Laatz, Kevin 2019-07-24 5:10 ` [PATCH bpf-next v3 09/11] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 10/11] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-24 5:10 ` [PATCH bpf-next v3 11/11] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-07-24 5:10 ` [Intel-wired-lan] " Kevin Laatz 2019-07-25 15:39 ` [PATCH bpf-next v3 00/11] XDP unaligned chunk placement support Jonathan Lemon 2019-07-25 15:39 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-25 15:56 ` Richardson, Bruce 2019-07-25 15:56 ` [Intel-wired-lan] " Richardson, Bruce 2019-07-25 17:30 ` Jonathan Lemon 2019-07-25 17:30 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-26 8:41 ` Bruce Richardson 2019-07-26 8:41 ` [Intel-wired-lan] " Bruce Richardson 2019-07-30 8:53 ` [PATCH bpf-next v4 " Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:53 ` [PATCH bpf-next v4 01/11] i40e: simplify Rx buffer recycle Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:53 ` [PATCH bpf-next v4 02/11] ixgbe: " Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:53 ` [PATCH bpf-next v4 03/11] libbpf: add flags to umem config Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-31 12:45 ` Björn Töpel 2019-07-31 12:45 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-07-31 14:25 ` Björn Töpel 2019-07-31 14:25 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-08-01 6:59 ` Andrii Nakryiko 2019-08-01 6:59 ` Andrii Nakryiko 2019-08-01 7:34 ` Björn Töpel 2019-08-01 7:34 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-08-02 7:19 ` Andrii Nakryiko 2019-08-02 7:19 ` Andrii Nakryiko 2019-08-02 7:26 ` Björn Töpel 2019-08-02 7:26 ` =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-07-30 8:53 ` [PATCH bpf-next v4 04/11] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-31 18:11 ` Jonathan Lemon 2019-07-31 18:11 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-30 8:53 ` [PATCH bpf-next v4 05/11] i40e: modify driver for handling offsets Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:53 ` [PATCH bpf-next v4 06/11] ixgbe: " Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:53 ` [PATCH bpf-next v4 07/11] mlx5e: " Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-31 18:10 ` Jonathan Lemon 2019-07-31 18:10 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-01 10:05 ` Maxim Mikityanskiy 2019-08-01 10:05 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-08-19 14:36 ` Maxim Mikityanskiy 2019-08-19 14:36 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-08-19 14:47 ` Laatz, Kevin 2019-08-19 14:47 ` [Intel-wired-lan] " Laatz, Kevin 2019-07-30 8:53 ` [PATCH bpf-next v4 08/11] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:53 ` [PATCH bpf-next v4 09/11] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-31 18:26 ` Jonathan Lemon 2019-07-31 18:26 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-30 8:53 ` [PATCH bpf-next v4 10/11] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-07-30 8:53 ` [Intel-wired-lan] " Kevin Laatz 2019-07-30 8:54 ` [PATCH bpf-next v4 11/11] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-07-30 8:54 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 00/11] XDP unaligned chunk placement support Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 01/11] i40e: simplify Rx buffer recycle Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 02/11] ixgbe: " Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 03/11] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 18:43 ` Jonathan Lemon 2019-08-22 18:43 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-23 13:35 ` Laatz, Kevin 2019-08-23 13:35 ` [Intel-wired-lan] " Laatz, Kevin 2019-08-27 7:36 ` Maxim Mikityanskiy 2019-08-27 7:36 ` [Intel-wired-lan] " Maxim Mikityanskiy 2019-08-22 1:44 ` [PATCH bpf-next v5 04/11] i40e: modify driver for handling offsets Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 05/11] ixgbe: " Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 06/11] mlx5e: " Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 07/11] libbpf: add flags to umem config Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 08/11] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 09/11] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 10/11] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-22 1:44 ` [PATCH bpf-next v5 11/11] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-08-22 1:44 ` [Intel-wired-lan] " Kevin Laatz 2019-08-27 2:25 ` [PATCH bpf-next v6 00/12] XDP unaligned chunk placement support Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-27 2:25 ` [PATCH bpf-next v6 01/12] i40e: simplify Rx buffer recycle Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:37 ` Jonathan Lemon 2019-08-30 15:37 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 02/12] ixgbe: " Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:39 ` Jonathan Lemon 2019-08-30 15:39 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 03/12] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:41 ` Jonathan Lemon 2019-08-30 15:41 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 04/12] i40e: modify driver for handling offsets Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:42 ` Jonathan Lemon 2019-08-30 15:42 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 05/12] ixgbe: " Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:42 ` Jonathan Lemon 2019-08-30 15:42 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 06/12] mlx5e: " Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:43 ` Jonathan Lemon 2019-08-30 15:43 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` Kevin Laatz [this message] 2019-08-27 2:25 ` [Intel-wired-lan] [PATCH bpf-next v6 07/12] net/mlx5e: Allow XSK frames smaller than a page Kevin Laatz 2019-08-30 15:45 ` Jonathan Lemon 2019-08-30 15:45 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 08/12] libbpf: add flags to umem config Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:46 ` Jonathan Lemon 2019-08-30 15:46 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 09/12] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:47 ` Jonathan Lemon 2019-08-30 15:47 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 10/12] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:49 ` Jonathan Lemon 2019-08-30 15:49 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 11/12] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:51 ` Jonathan Lemon 2019-08-30 15:51 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-27 2:25 ` [PATCH bpf-next v6 12/12] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-08-27 2:25 ` [Intel-wired-lan] " Kevin Laatz 2019-08-30 15:51 ` Jonathan Lemon 2019-08-30 15:51 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-30 15:52 ` [PATCH bpf-next v6 00/12] XDP unaligned chunk placement support Jonathan Lemon 2019-08-30 15:52 ` [Intel-wired-lan] " Jonathan Lemon 2019-08-30 23:29 ` Daniel Borkmann 2019-08-30 23:29 ` [Intel-wired-lan] " Daniel Borkmann
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190827022531.15060-8-kevin.laatz@intel.com \ --to=kevin.laatz@intel.com \ --cc=ast@kernel.org \ --cc=bjorn.topel@intel.com \ --cc=bpf@vger.kernel.org \ --cc=bruce.richardson@intel.com \ --cc=ciara.loftus@intel.com \ --cc=daniel@iogearbox.net \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=jakub.kicinski@netronome.com \ --cc=jonathan.lemon@gmail.com \ --cc=magnus.karlsson@intel.com \ --cc=maximmi@mellanox.com \ --cc=netdev@vger.kernel.org \ --cc=saeedm@mellanox.com \ --cc=stephen@networkplumber.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.