[PATCH bpf-next v3 00/14] selftests/bpf: Integrate test_xsk.c to test_progs framework

Bastien Curutchet (eBPF Foundation) posted 14 patches 4 weeks ago
There is a newer version of this series
tools/testing/selftests/bpf/Makefile              |   11 +-
tools/testing/selftests/bpf/prog_tests/test_xsk.c | 2604 ++++++++++++++++++++
tools/testing/selftests/bpf/prog_tests/test_xsk.h |  294 +++
tools/testing/selftests/bpf/prog_tests/xsk.c      |  146 ++
tools/testing/selftests/bpf/xskxceiver.c          | 2685 +--------------------
tools/testing/selftests/bpf/xskxceiver.h          |  156 --
6 files changed, 3170 insertions(+), 2726 deletions(-)
[PATCH bpf-next v3 00/14] selftests/bpf: Integrate test_xsk.c to test_progs framework
Posted by Bastien Curutchet (eBPF Foundation) 4 weeks ago
Hi all,

This is a second version of a series I sent some time ago, it continues
the work of migrating the script tests into prog_tests.

The test_xsk.sh script covers many AF_XDP use cases. The tests it runs
are defined in xksxceiver.c. Since this script is used to test real
hardware, the goal here is to leave it as it is, and only integrate the
tests that run on veth peers into the test_progs framework.

Some tests are flaky so they can't be integrated in the CI as they are.
I think that fixing their flakyness would require a significant amount of
work. So, as first step, I've excluded them from the list of tests
migrated to the CI (see PATCH 13). If these tests get fixed at some
point, integrating them into the CI will be straightforward.

PATCH 1 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the
tests available to test_progs.
PATCH 2 to 5 fix small issues in the current test
PATCH 7 to 12 handle all errors to release resources instead of calling
exit() when any error occurs.
PATCH 13 isolates some flaky tests
PATCH 14 integrate the non-flaky tests to the test_progs framework

Maciej, I've fixed the bug you found in the initial series. I've
looked for any hardware able to run test_xsk.sh in my office, but I
couldn't find one ... So here again, only the veth part has been tested,
sorry about that.

Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
---
Changes in v3:
- Rebase on latest bpf-next_base to integrate commit c9110e6f7237 ("selftests/bpf:
Fix count write in testapp_xdp_metadata_copy()").
- Move XDP_METADATA_COPY_* tests from flaky-tests to nominal tests
- Link to v2: https://lore.kernel.org/r/20250902-xsk-v2-0-17c6345d5215@bootlin.com

Changes in v2:
- Rebase on the latest bpf-next_base and integrate the newly added tests
  to the work (adjust_tail* and tx_queue_consumer tests)
- Re-order patches to split xkxceiver sooner.
- Fix the bug reported by Maciej.
- Fix verbose mode in test_xsk.sh by keeping kselftest (remove PATCH 1,
  7 and 8)
- Link to v1: https://lore.kernel.org/r/20250313-xsk-v1-0-7374729a93b9@bootlin.com

---
Bastien Curutchet (eBPF Foundation) (14):
      selftests/bpf: test_xsk: Split xskxceiver
      selftests/bpf: test_xsk: Initialize bitmap before use
      selftests/bpf: test_xsk: Fix memory leaks
      selftests/bpf: test_xsk: Wrap test clean-up in functions
      selftests/bpf: test_xsk: Release resources when swap fails
      selftests/bpf: test_xsk: Add return value to init_iface()
      selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails
      selftests/bpf: test_xsk: Don't exit immediately when gettimeofday fails
      selftests/bpf: test_xsk: Don't exit immediately when workers fail
      selftests/bpf: test_xsk: Don't exit immediately if validate_traffic fails
      selftests/bpf: test_xsk: Don't exit immediately on allocation failures
      selftests/bpf: test_xsk: Move exit_with_error to xskxceiver.c
      selftests/bpf: test_xsk: Isolate flaky tests
      selftests/bpf: test_xsk: Integrate test_xsk.c to test_progs framework

 tools/testing/selftests/bpf/Makefile              |   11 +-
 tools/testing/selftests/bpf/prog_tests/test_xsk.c | 2604 ++++++++++++++++++++
 tools/testing/selftests/bpf/prog_tests/test_xsk.h |  294 +++
 tools/testing/selftests/bpf/prog_tests/xsk.c      |  146 ++
 tools/testing/selftests/bpf/xskxceiver.c          | 2685 +--------------------
 tools/testing/selftests/bpf/xskxceiver.h          |  156 --
 6 files changed, 3170 insertions(+), 2726 deletions(-)
---
base-commit: e4e08c130231eb8071153ab5f056874d8f70430b
change-id: 20250218-xsk-0cf90e975d14

Best regards,
-- 
Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
Re: [PATCH bpf-next v3 00/14] selftests/bpf: Integrate test_xsk.c to test_progs framework
Posted by Maciej Fijalkowski 4 weeks ago
On Thu, Sep 04, 2025 at 12:10:15PM +0200, Bastien Curutchet (eBPF Foundation) wrote:
> Hi all,
> 
> This is a second version of a series I sent some time ago, it continues
> the work of migrating the script tests into prog_tests.
> 
> The test_xsk.sh script covers many AF_XDP use cases. The tests it runs
> are defined in xksxceiver.c. Since this script is used to test real
> hardware, the goal here is to leave it as it is, and only integrate the
> tests that run on veth peers into the test_progs framework.
> 
> Some tests are flaky so they can't be integrated in the CI as they are.
> I think that fixing their flakyness would require a significant amount of
> work. So, as first step, I've excluded them from the list of tests
> migrated to the CI (see PATCH 13). If these tests get fixed at some
> point, integrating them into the CI will be straightforward.
> 
> PATCH 1 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the
> tests available to test_progs.
> PATCH 2 to 5 fix small issues in the current test
> PATCH 7 to 12 handle all errors to release resources instead of calling
> exit() when any error occurs.
> PATCH 13 isolates some flaky tests
> PATCH 14 integrate the non-flaky tests to the test_progs framework
> 
> Maciej, I've fixed the bug you found in the initial series. I've
> looked for any hardware able to run test_xsk.sh in my office, but I
> couldn't find one ... So here again, only the veth part has been tested,
> sorry about that.

Hi Bastien,

just a heads up, I won't be able to review this until 15 sept. If anyone
else would pick this up earlier then good, otherwise please stay patient
:)

> 
> Signed-off-by: Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
> ---
> Changes in v3:
> - Rebase on latest bpf-next_base to integrate commit c9110e6f7237 ("selftests/bpf:
> Fix count write in testapp_xdp_metadata_copy()").
> - Move XDP_METADATA_COPY_* tests from flaky-tests to nominal tests
> - Link to v2: https://lore.kernel.org/r/20250902-xsk-v2-0-17c6345d5215@bootlin.com
> 
> Changes in v2:
> - Rebase on the latest bpf-next_base and integrate the newly added tests
>   to the work (adjust_tail* and tx_queue_consumer tests)
> - Re-order patches to split xkxceiver sooner.
> - Fix the bug reported by Maciej.
> - Fix verbose mode in test_xsk.sh by keeping kselftest (remove PATCH 1,
>   7 and 8)
> - Link to v1: https://lore.kernel.org/r/20250313-xsk-v1-0-7374729a93b9@bootlin.com
> 
> ---
> Bastien Curutchet (eBPF Foundation) (14):
>       selftests/bpf: test_xsk: Split xskxceiver
>       selftests/bpf: test_xsk: Initialize bitmap before use
>       selftests/bpf: test_xsk: Fix memory leaks
>       selftests/bpf: test_xsk: Wrap test clean-up in functions
>       selftests/bpf: test_xsk: Release resources when swap fails
>       selftests/bpf: test_xsk: Add return value to init_iface()
>       selftests/bpf: test_xsk: Don't exit immediately when xsk_attach fails
>       selftests/bpf: test_xsk: Don't exit immediately when gettimeofday fails
>       selftests/bpf: test_xsk: Don't exit immediately when workers fail
>       selftests/bpf: test_xsk: Don't exit immediately if validate_traffic fails
>       selftests/bpf: test_xsk: Don't exit immediately on allocation failures
>       selftests/bpf: test_xsk: Move exit_with_error to xskxceiver.c
>       selftests/bpf: test_xsk: Isolate flaky tests
>       selftests/bpf: test_xsk: Integrate test_xsk.c to test_progs framework
> 
>  tools/testing/selftests/bpf/Makefile              |   11 +-
>  tools/testing/selftests/bpf/prog_tests/test_xsk.c | 2604 ++++++++++++++++++++
>  tools/testing/selftests/bpf/prog_tests/test_xsk.h |  294 +++
>  tools/testing/selftests/bpf/prog_tests/xsk.c      |  146 ++
>  tools/testing/selftests/bpf/xskxceiver.c          | 2685 +--------------------
>  tools/testing/selftests/bpf/xskxceiver.h          |  156 --
>  6 files changed, 3170 insertions(+), 2726 deletions(-)
> ---
> base-commit: e4e08c130231eb8071153ab5f056874d8f70430b
> change-id: 20250218-xsk-0cf90e975d14
> 
> Best regards,
> -- 
> Bastien Curutchet (eBPF Foundation) <bastien.curutchet@bootlin.com>
>
Re: [PATCH bpf-next v3 00/14] selftests/bpf: Integrate test_xsk.c to test_progs framework
Posted by Alexei Starovoitov 2 weeks, 3 days ago
On Thu, Sep 4, 2025 at 7:17 AM Maciej Fijalkowski
<maciej.fijalkowski@intel.com> wrote:
>
> On Thu, Sep 04, 2025 at 12:10:15PM +0200, Bastien Curutchet (eBPF Foundation) wrote:
> > Hi all,
> >
> > This is a second version of a series I sent some time ago, it continues
> > the work of migrating the script tests into prog_tests.
> >
> > The test_xsk.sh script covers many AF_XDP use cases. The tests it runs
> > are defined in xksxceiver.c. Since this script is used to test real
> > hardware, the goal here is to leave it as it is, and only integrate the
> > tests that run on veth peers into the test_progs framework.
> >
> > Some tests are flaky so they can't be integrated in the CI as they are.
> > I think that fixing their flakyness would require a significant amount of
> > work. So, as first step, I've excluded them from the list of tests
> > migrated to the CI (see PATCH 13). If these tests get fixed at some
> > point, integrating them into the CI will be straightforward.
> >
> > PATCH 1 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the
> > tests available to test_progs.
> > PATCH 2 to 5 fix small issues in the current test
> > PATCH 7 to 12 handle all errors to release resources instead of calling
> > exit() when any error occurs.
> > PATCH 13 isolates some flaky tests
> > PATCH 14 integrate the non-flaky tests to the test_progs framework
> >
> > Maciej, I've fixed the bug you found in the initial series. I've
> > looked for any hardware able to run test_xsk.sh in my office, but I
> > couldn't find one ... So here again, only the veth part has been tested,
> > sorry about that.
>
> Hi Bastien,
>
> just a heads up, I won't be able to review this until 15 sept. If anyone
> else would pick this up earlier then good, otherwise please stay patient
> :)

Maciej,
Sep 15 is today... just bumping it in your todo list :)
Pls take a look.
Re: [PATCH bpf-next v3 00/14] selftests/bpf: Integrate test_xsk.c to test_progs framework
Posted by Bastien Curutchet 4 weeks ago
Hi Maciej,

On 9/4/25 4:17 PM, Maciej Fijalkowski wrote:
> On Thu, Sep 04, 2025 at 12:10:15PM +0200, Bastien Curutchet (eBPF Foundation) wrote:
>> Hi all,
>>
>> This is a second version of a series I sent some time ago, it continues
>> the work of migrating the script tests into prog_tests.
>>
>> The test_xsk.sh script covers many AF_XDP use cases. The tests it runs
>> are defined in xksxceiver.c. Since this script is used to test real
>> hardware, the goal here is to leave it as it is, and only integrate the
>> tests that run on veth peers into the test_progs framework.
>>
>> Some tests are flaky so they can't be integrated in the CI as they are.
>> I think that fixing their flakyness would require a significant amount of
>> work. So, as first step, I've excluded them from the list of tests
>> migrated to the CI (see PATCH 13). If these tests get fixed at some
>> point, integrating them into the CI will be straightforward.
>>
>> PATCH 1 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the
>> tests available to test_progs.
>> PATCH 2 to 5 fix small issues in the current test
>> PATCH 7 to 12 handle all errors to release resources instead of calling
>> exit() when any error occurs.
>> PATCH 13 isolates some flaky tests
>> PATCH 14 integrate the non-flaky tests to the test_progs framework
>>
>> Maciej, I've fixed the bug you found in the initial series. I've
>> looked for any hardware able to run test_xsk.sh in my office, but I
>> couldn't find one ... So here again, only the veth part has been tested,
>> sorry about that.
> 
> Hi Bastien,
> 
> just a heads up, I won't be able to review this until 15 sept. If anyone
> else would pick this up earlier then good, otherwise please stay patient
> :)

Thanks for letting me know. There’s no hurry on my side.

Best regards,
--
Bastien Curutchet, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com