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

Maciej Fijalkowski
2025-09-04T14:17:16Z

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>
>