[PATCH bpf] samples/bpf: consider frame size in tx_only of xdpsock sample

Subsystems: bpf [general] (safe dynamic programs and tools), the rest, xdp (express data path)

STALE1947d LANDED

Landed in mainline as 3b80d106e110 on 2021-05-06.

4 messages, 4 authors, 2021-05-06 · open the first message on its own page

[PATCH bpf] samples/bpf: consider frame size in tx_only of xdpsock sample

From: Magnus Karlsson <hidden>
Date: 2021-05-06 12:44:01

From: Magnus Karlsson <magnus.karlsson@intel.com>

Fix the tx_only micro-benchmark in xdpsock to take frame size into
consideration. It was hardcoded to the default value of frame_size
which is 4K. Changing this on the command line to 2K made half of the
packets illegal as they were outside the umem and were therefore
discarded by the kernel.

Fixes: 46738f73ea4f ("samples/bpf: add use of need_wakeup flag in xdpsock")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
---
 samples/bpf/xdpsock_user.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c
index aa696854be78..53e300f860bb 100644
--- a/samples/bpf/xdpsock_user.c
+++ b/samples/bpf/xdpsock_user.c
@@ -1255,7 +1255,7 @@ static void tx_only(struct xsk_socket_info *xsk, u32 *frame_nb, int batch_size)
 	for (i = 0; i < batch_size; i++) {
 		struct xdp_desc *tx_desc = xsk_ring_prod__tx_desc(&xsk->tx,
 								  idx + i);
-		tx_desc->addr = (*frame_nb + i) << XSK_UMEM__DEFAULT_FRAME_SHIFT;
+		tx_desc->addr = (*frame_nb + i) * opt_xsk_frame_size;
 		tx_desc->len = PKT_SIZE;
 	}
 
base-commit: 9683e5775c75097c46bd24e65411b16ac6c6cbb3
-- 
2.29.0

Re: [PATCH bpf] samples/bpf: consider frame size in tx_only of xdpsock sample

From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Date: 2021-05-06 13:21:07

On Thu, May 06, 2021 at 02:43:49PM +0200, Magnus Karlsson wrote:
From: Magnus Karlsson <magnus.karlsson@intel.com>

Fix the tx_only micro-benchmark in xdpsock to take frame size into
consideration. It was hardcoded to the default value of frame_size
which is 4K. Changing this on the command line to 2K made half of the
packets illegal as they were outside the umem and were therefore
discarded by the kernel.

Fixes: 46738f73ea4f ("samples/bpf: add use of need_wakeup flag in xdpsock")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
quoted hunk
---
 samples/bpf/xdpsock_user.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c
index aa696854be78..53e300f860bb 100644
--- a/samples/bpf/xdpsock_user.c
+++ b/samples/bpf/xdpsock_user.c
@@ -1255,7 +1255,7 @@ static void tx_only(struct xsk_socket_info *xsk, u32 *frame_nb, int batch_size)
 	for (i = 0; i < batch_size; i++) {
 		struct xdp_desc *tx_desc = xsk_ring_prod__tx_desc(&xsk->tx,
 								  idx + i);
-		tx_desc->addr = (*frame_nb + i) << XSK_UMEM__DEFAULT_FRAME_SHIFT;
+		tx_desc->addr = (*frame_nb + i) * opt_xsk_frame_size;
 		tx_desc->len = PKT_SIZE;
 	}
 
base-commit: 9683e5775c75097c46bd24e65411b16ac6c6cbb3
-- 
2.29.0

Re: [PATCH bpf] samples/bpf: consider frame size in tx_only of xdpsock sample

From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2021-05-06 23:30:14

On 5/6/21 2:43 PM, Magnus Karlsson wrote:
From: Magnus Karlsson <magnus.karlsson@intel.com>

Fix the tx_only micro-benchmark in xdpsock to take frame size into
consideration. It was hardcoded to the default value of frame_size
which is 4K. Changing this on the command line to 2K made half of the
packets illegal as they were outside the umem and were therefore
discarded by the kernel.

Fixes: 46738f73ea4f ("samples/bpf: add use of need_wakeup flag in xdpsock")
Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Applied, thanks!

Re: [PATCH bpf] samples/bpf: consider frame size in tx_only of xdpsock sample

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-05-06 23:30:16

Hello:

This patch was applied to bpf/bpf.git (refs/heads/master):

On Thu,  6 May 2021 14:43:49 +0200 you wrote:
From: Magnus Karlsson <magnus.karlsson@intel.com>

Fix the tx_only micro-benchmark in xdpsock to take frame size into
consideration. It was hardcoded to the default value of frame_size
which is 4K. Changing this on the command line to 2K made half of the
packets illegal as they were outside the umem and were therefore
discarded by the kernel.

[...]
Here is the summary with links:
  - [bpf] samples/bpf: consider frame size in tx_only of xdpsock sample
    https://git.kernel.org/bpf/bpf/c/3b80d106e110

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help