2023-04-03 14:52:49

by Kal Cutter Conley

[permalink] [raw]
Subject: [PATCH bpf-next 1/2] selftests: xsk: Use correct UMEM size in testapp_invalid_desc

Avoid UMEM_SIZE macro in testapp_invalid_desc which is incorrect when
the frame size is not XSK_UMEM__DEFAULT_FRAME_SIZE. Also remove the
macro since it's no longer being used.

Fixes: 909f0e28207c ("selftests: xsk: Add tests for 2K frame size")
Signed-off-by: Kal Conley <[email protected]>
---
tools/testing/selftests/bpf/xskxceiver.c | 9 +++++----
tools/testing/selftests/bpf/xskxceiver.h | 1 -
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index b65e0645b0cd..3956f5db84f3 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -1652,6 +1652,7 @@ static void testapp_single_pkt(struct test_spec *test)

static void testapp_invalid_desc(struct test_spec *test)
{
+ u64 umem_size = test->ifobj_tx->umem->num_frames * test->ifobj_tx->umem->frame_size;
struct pkt pkts[] = {
/* Zero packet address allowed */
{0, PKT_SIZE, 0, true},
@@ -1662,9 +1663,9 @@ static void testapp_invalid_desc(struct test_spec *test)
/* Packet too large */
{0x2000, XSK_UMEM__INVALID_FRAME_SIZE, 0, false},
/* After umem ends */
- {UMEM_SIZE, PKT_SIZE, 0, false},
+ {umem_size, PKT_SIZE, 0, false},
/* Straddle the end of umem */
- {UMEM_SIZE - PKT_SIZE / 2, PKT_SIZE, 0, false},
+ {umem_size - PKT_SIZE / 2, PKT_SIZE, 0, false},
/* Straddle a page boundrary */
{0x3000 - PKT_SIZE / 2, PKT_SIZE, 0, false},
/* Straddle a 2K boundrary */
@@ -1682,8 +1683,8 @@ static void testapp_invalid_desc(struct test_spec *test)
}

if (test->ifobj_tx->shared_umem) {
- pkts[4].addr += UMEM_SIZE;
- pkts[5].addr += UMEM_SIZE;
+ pkts[4].addr += umem_size;
+ pkts[5].addr += umem_size;
}

pkt_stream_generate_custom(test, pkts, ARRAY_SIZE(pkts));
diff --git a/tools/testing/selftests/bpf/xskxceiver.h b/tools/testing/selftests/bpf/xskxceiver.h
index bdb4efedf3a9..cc24ab72f3ff 100644
--- a/tools/testing/selftests/bpf/xskxceiver.h
+++ b/tools/testing/selftests/bpf/xskxceiver.h
@@ -53,7 +53,6 @@
#define THREAD_TMOUT 3
#define DEFAULT_PKT_CNT (4 * 1024)
#define DEFAULT_UMEM_BUFFERS (DEFAULT_PKT_CNT / 4)
-#define UMEM_SIZE (DEFAULT_UMEM_BUFFERS * XSK_UMEM__DEFAULT_FRAME_SIZE)
#define RX_FULL_RXQSIZE 32
#define UMEM_HEADROOM_TEST_SIZE 128
#define XSK_UMEM__INVALID_FRAME_SIZE (XSK_UMEM__DEFAULT_FRAME_SIZE + 1)
--
2.39.2


2023-04-04 06:43:10

by Magnus Karlsson

[permalink] [raw]
Subject: Re: [PATCH bpf-next 1/2] selftests: xsk: Use correct UMEM size in testapp_invalid_desc

On Mon, 3 Apr 2023 at 16:52, Kal Conley <[email protected]> wrote:
>
> Avoid UMEM_SIZE macro in testapp_invalid_desc which is incorrect when
> the frame size is not XSK_UMEM__DEFAULT_FRAME_SIZE. Also remove the
> macro since it's no longer being used.

Acked-by: Magnus Karlsson <[email protected]>

> Fixes: 909f0e28207c ("selftests: xsk: Add tests for 2K frame size")
> Signed-off-by: Kal Conley <[email protected]>
> ---
> tools/testing/selftests/bpf/xskxceiver.c | 9 +++++----
> tools/testing/selftests/bpf/xskxceiver.h | 1 -
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
> index b65e0645b0cd..3956f5db84f3 100644
> --- a/tools/testing/selftests/bpf/xskxceiver.c
> +++ b/tools/testing/selftests/bpf/xskxceiver.c
> @@ -1652,6 +1652,7 @@ static void testapp_single_pkt(struct test_spec *test)
>
> static void testapp_invalid_desc(struct test_spec *test)
> {
> + u64 umem_size = test->ifobj_tx->umem->num_frames * test->ifobj_tx->umem->frame_size;
> struct pkt pkts[] = {
> /* Zero packet address allowed */
> {0, PKT_SIZE, 0, true},
> @@ -1662,9 +1663,9 @@ static void testapp_invalid_desc(struct test_spec *test)
> /* Packet too large */
> {0x2000, XSK_UMEM__INVALID_FRAME_SIZE, 0, false},
> /* After umem ends */
> - {UMEM_SIZE, PKT_SIZE, 0, false},
> + {umem_size, PKT_SIZE, 0, false},
> /* Straddle the end of umem */
> - {UMEM_SIZE - PKT_SIZE / 2, PKT_SIZE, 0, false},
> + {umem_size - PKT_SIZE / 2, PKT_SIZE, 0, false},
> /* Straddle a page boundrary */
> {0x3000 - PKT_SIZE / 2, PKT_SIZE, 0, false},
> /* Straddle a 2K boundrary */
> @@ -1682,8 +1683,8 @@ static void testapp_invalid_desc(struct test_spec *test)
> }
>
> if (test->ifobj_tx->shared_umem) {
> - pkts[4].addr += UMEM_SIZE;
> - pkts[5].addr += UMEM_SIZE;
> + pkts[4].addr += umem_size;
> + pkts[5].addr += umem_size;
> }
>
> pkt_stream_generate_custom(test, pkts, ARRAY_SIZE(pkts));
> diff --git a/tools/testing/selftests/bpf/xskxceiver.h b/tools/testing/selftests/bpf/xskxceiver.h
> index bdb4efedf3a9..cc24ab72f3ff 100644
> --- a/tools/testing/selftests/bpf/xskxceiver.h
> +++ b/tools/testing/selftests/bpf/xskxceiver.h
> @@ -53,7 +53,6 @@
> #define THREAD_TMOUT 3
> #define DEFAULT_PKT_CNT (4 * 1024)
> #define DEFAULT_UMEM_BUFFERS (DEFAULT_PKT_CNT / 4)
> -#define UMEM_SIZE (DEFAULT_UMEM_BUFFERS * XSK_UMEM__DEFAULT_FRAME_SIZE)
> #define RX_FULL_RXQSIZE 32
> #define UMEM_HEADROOM_TEST_SIZE 128
> #define XSK_UMEM__INVALID_FRAME_SIZE (XSK_UMEM__DEFAULT_FRAME_SIZE + 1)
> --
> 2.39.2
>