On Thu, Mar 13, 2025 at 11:47:58AM +0100, Bastien Curutchet (eBPF Foundation) wrote:
Hi all,
This patch series continues the work to migrate the script tests into prog_tests.
Hi Bastien,
the sole purpose of this is a cleanup of some sort?
The test_xsk.sh script tests lots of AF_XDP use cases. The tests it uses are defined in xksxceiver.c. As this script is used to test real hardware, the goal here is to keep it as is and only integrate the tests on veth peers into the test_progs framework.
We're doubling the functionality for no additional benefits? Or the benefit of this set would be the veth xsk tests execution within BPF CI?
Three tests are flaky on s390 so they won't be integrated to test_progs yet (I'm currently trying to make them more robust).
PATCH 1 & 2 fix some small issues xskxceiver.c PATCH 3 to 9 rework the xskxceiver to ease the integration in the test_progs framework. Two main points are addressed in them :
- wrap kselftest calls behind macros to ease their replacement later
- handle all errors to release resources instead of calling exit() when any error occurs.
PATCH 10 extracts test_xsk[.c/.h] from xskxceiver[.c/.h] to make the tests available to test_progs PATCH 11 enables kselftest de-activation PATCH 12 isolates the flaky tests PATCH 13 integrate the non-flaky tests to the test_progs framework
I didn't bisect but this set breaks the HW tests for me which *is* what we care about. I'll dig onto that on monday and will get back to you.
sudo ./test_xsk.sh -i enp24s0f1np1 PREREQUISITES: [ PASS ] 1..93 ok 1 PASS: SKB SEND_RECEIVE ok 2 PASS: SKB SEND_RECEIVE_2K_FRAME ok 3 PASS: SKB SEND_RECEIVE_SINGLE_PKT ok 4 PASS: SKB POLL_RX ok 5 PASS: SKB POLL_TX ok 6 PASS: SKB POLL_RXQ_FULL ok 7 PASS: SKB POLL_TXQ_FULL ok 1 # SKIP No huge pages present. ok 8 PASS: SKB ALIGNED_INV_DESC ok 9 PASS: SKB ALIGNED_INV_DESC_2K_FRAME_SIZE ok 2 # SKIP No huge pages present. ok 3 # SKIP No huge pages present. ok 10 PASS: SKB UMEM_HEADROOM ok 11 PASS: SKB BIDIRECTIONAL ok 12 PASS: SKB STAT_RX_DROPPED ok 13 PASS: SKB STAT_TX_INVALID ok 14 PASS: SKB STAT_RX_FULL ok 15 PASS: SKB STAT_FILL_EMPTY ok 16 PASS: SKB XDP_PROG_CLEANUP ok 17 PASS: SKB XDP_DROP_HALF ok 18 PASS: SKB XDP_SHARED_UMEM ok 19 PASS: SKB XDP_METADATA_COPY ok 20 PASS: SKB XDP_METADATA_COPY_MULTI_BUFF ok 21 PASS: SKB ALIGNED_INV_DESC_MULTI_BUFF ok 4 # SKIP No huge pages present. ok 22 PASS: SKB TOO_MANY_FRAGS ok 23 PASS: SKB HW_SW_MIN_RING_SIZE not ok 5 FAIL: SKB TEARDOWN not ok 6 FAIL: SKB SEND_RECEIVE_9K_PACKETS ok 7 # SKIP No huge pages present. not ok 8 FAIL: DRV SEND_RECEIVE not ok 9 FAIL: DRV SEND_RECEIVE_2K_FRAME not ok 10 FAIL: DRV SEND_RECEIVE_SINGLE_PKT not ok 11 FAIL: DRV POLL_RX not ok 12 FAIL: DRV POLL_TX ok 24 PASS: DRV POLL_RXQ_FULL ok 25 PASS: DRV POLL_TXQ_FULL ok 13 # SKIP No huge pages present. not ok 14 FAIL: DRV ALIGNED_INV_DESC not ok 15 FAIL: DRV ALIGNED_INV_DESC_2K_FRAME_SIZE ok 16 # SKIP No huge pages present. ok 17 # SKIP No huge pages present. not ok 18 FAIL: DRV UMEM_HEADROOM not ok 19 FAIL: DRV BIDIRECTIONAL not ok 20 FAIL: DRV STAT_RX_DROPPED not ok 21 FAIL: DRV STAT_TX_INVALID not ok 22 FAIL: DRV STAT_RX_FULL not ok 23 FAIL: DRV STAT_FILL_EMPTY not ok 24 FAIL: DRV XDP_PROG_CLEANUP not ok 25 FAIL: DRV XDP_DROP_HALF not ok 26 FAIL: DRV XDP_SHARED_UMEM not ok 27 FAIL: DRV XDP_METADATA_COPY not ok 28 FAIL: DRV XDP_METADATA_COPY_MULTI_BUFF not ok 29 FAIL: DRV ALIGNED_INV_DESC_MULTI_BUFF ok 30 # SKIP No huge pages present. not ok 31 FAIL: DRV TOO_MANY_FRAGS ok 32 # SKIP Failed to change HW ring size. not ok 33 FAIL: DRV HW_SW_MAX_RING_SIZE not ok 34 FAIL: DRV TEARDOWN not ok 35 FAIL: DRV SEND_RECEIVE_9K_PACKETS ok 36 # SKIP No huge pages present. not ok 37 FAIL: ZC SEND_RECEIVE not ok 38 FAIL: ZC SEND_RECEIVE_2K_FRAME not ok 39 FAIL: ZC SEND_RECEIVE_SINGLE_PKT not ok 40 FAIL: ZC POLL_RX not ok 41 FAIL: ZC POLL_TX ok 26 PASS: ZC POLL_RXQ_FULL ok 27 PASS: ZC POLL_TXQ_FULL ok 42 # SKIP No huge pages present. not ok 43 FAIL: ZC ALIGNED_INV_DESC not ok 44 FAIL: ZC ALIGNED_INV_DESC_2K_FRAME_SIZE ok 45 # SKIP No huge pages present. ok 46 # SKIP No huge pages present. not ok 47 FAIL: ZC UMEM_HEADROOM not ok 48 FAIL: ZC BIDIRECTIONAL ok 49 # SKIP Can not run RX_DROPPED test for ZC mode not ok 50 FAIL: ZC STAT_TX_INVALID not ok 51 FAIL: ZC STAT_RX_FULL not ok 52 FAIL: ZC STAT_FILL_EMPTY not ok 53 FAIL: ZC XDP_PROG_CLEANUP not ok 54 FAIL: ZC XDP_DROP_HALF not ok 55 FAIL: ZC XDP_SHARED_UMEM not ok 56 FAIL: ZC XDP_METADATA_COPY not ok 57 FAIL: ZC XDP_METADATA_COPY_MULTI_BUFF not ok 58 FAIL: ZC ALIGNED_INV_DESC_MULTI_BUFF ok 59 # SKIP No huge pages present. not ok 60 FAIL: ZC TOO_MANY_FRAGS ok 61 # SKIP Failed to change HW ring size. not ok 62 FAIL: ZC HW_SW_MAX_RING_SIZE not ok 63 FAIL: ZC TEARDOWN not ok 64 FAIL: ZC SEND_RECEIVE_9K_PACKETS ok 65 # SKIP No huge pages present. # Planned tests != run tests (93 != 27) # Totals: pass:27 fail:0 xfail:0 xpass:0 skip:0 error:0
(same for BUSY-POLL).
Signed-off-by: Bastien Curutchet (eBPF Foundation) bastien.curutchet@bootlin.com
Bastien Curutchet (eBPF Foundation) (13): selftests/bpf: test_xsk: Initialize bitmap before use selftests/bpf: test_xsk: Fix memory leaks selftests/bpf: test_xsk: Wrap ksft_*() behind macros 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: Split xskxceiver selftests/bpf: test_xsk: Make kselftest dependency optional selftests/bpf: test_xsk: Isolate flaky tests selftests/bpf: test_xsk: Integrate test_xsk.c to test_progs framework
tools/testing/selftests/bpf/Makefile | 13 +- tools/testing/selftests/bpf/prog_tests/test_xsk.c | 2416 ++++++++++++++++++++ tools/testing/selftests/bpf/prog_tests/test_xsk.h | 299 +++ tools/testing/selftests/bpf/prog_tests/xsk.c | 178 ++ tools/testing/selftests/bpf/xskxceiver.c | 2543 +-------------------- tools/testing/selftests/bpf/xskxceiver.h | 153 -- 6 files changed, 3021 insertions(+), 2581 deletions(-)
base-commit: 720c696b16a1b1680f64cac9b3bb9e312a23ac47 change-id: 20250218-xsk-0cf90e975d14
Best regards,
Bastien Curutchet (eBPF Foundation) bastien.curutchet@bootlin.com