From nobody Thu Dec 18 03:20:20 2025 Received: from smtpout-02.galae.net (smtpout-02.galae.net [185.246.84.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B34833DEF2 for ; Fri, 31 Oct 2025 08:05:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.246.84.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761897932; cv=none; b=ew9zRRHqnJ0h85875ujQAmWYcV/DzJxlS13bIsVYmvwnSfAYdnIXVbpA8AHZOZfMAh3v1p8j1OugrxU6vM5Ft4h5GEslIZETqJi+4N525B6gnaFqhsdhHvH4gyiZGwsJwVvwBR8ojp68MM+bxIIzrMjx36dGYWX4GjGGGMkXRmM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761897932; c=relaxed/simple; bh=EYP1g6ILAIRuipFpZVQB29tZDOyn6uosFb5pzpZkGxI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Qvh6j0Hn7CJxwsFOTqH6WFmbYs7NxEEZT0vBH9D6tg7TBrI7QP63ZDj04tEEzjQsXseLkJOdE7YxaYyLc60Sn5XPsiBgcmKklmzl0J5rdlj1aHA/Mi7h7ac+BFa8DdbobzcjYJDFEIFBn+6QcDX3vegdB8bbtDVqb1EStYCHXhY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=gOX2dxzE; arc=none smtp.client-ip=185.246.84.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="gOX2dxzE" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-02.galae.net (Postfix) with ESMTPS id 746941A17AA; Fri, 31 Oct 2025 08:05:28 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 4A79D60704; Fri, 31 Oct 2025 08:05:28 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id BC9931180FB6D; Fri, 31 Oct 2025 09:05:24 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1761897927; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=4oP4SA3WDBmB77+xU7Hdn9aCn/4FW3aMWThtZxtROQg=; b=gOX2dxzEkJESzn7fxnxjTkBS44aFYcYpoOOnriC9+Dp7RKbKG0uQuFUtLU43gOkIt9hQnl eYhHuijFbEH4fs97t5YOeubYzB8RKHeQVBGo/HXN34RrBJzUUglR20rmCXmMmW0Ah/qmky BzAiEIIvK2LyAvZielbe1BgsTh2krXooRTMFazKZY8t2qzSICfO2NyprvpJmQEirbLhQTP jZNg0F7hhAg81XSwoOAV2SmdNO5UZZ1f0l21+2fZHVRZEThI9t9UxsESQucAwBkd+yLz6/ VRgntZOihBoZxz+MRzkD2/nOljoyNfK1dsqvYMIMBw2qPuvx8kE4P3d3hSw3UA== From: "Bastien Curutchet (eBPF Foundation)" Date: Fri, 31 Oct 2025 09:04:50 +0100 Subject: [PATCH bpf-next v7 14/15] selftests/bpf: test_xsk: Isolate non-CI tests Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251031-xsk-v7-14-39fe486593a3@bootlin.com> References: <20251031-xsk-v7-0-39fe486593a3@bootlin.com> In-Reply-To: <20251031-xsk-v7-0-39fe486593a3@bootlin.com> To: =?utf-8?q?Bj=C3=B6rn_T=C3=B6pel?= , Magnus Karlsson , Maciej Fijalkowski , Jonathan Lemon , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Mykola Lysenko , Shuah Khan , "David S. Miller" , Jakub Kicinski , Jesper Dangaard Brouer Cc: Thomas Petazzoni , Alexis Lothore , netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, "Bastien Curutchet (eBPF Foundation)" X-Mailer: b4 0.14.2 X-Last-TLS-Session-Version: TLSv1.3 Following tests won't fit in the CI: - XDP_ADJUST_TAIL_* and SEND_RECEIVE_9K_PACKETS because of their flakyness - UNALIGNED_* because they depend on huge page allocations - *_RING_SIZE because they depend on HW rings - TEARDOWN because it's too long Remove these tests from the nominal tests table so they won't be run by the CI in upcoming patch. Create a skip_ci_tests table to hold them. Use this skip_ci table in xskxceiver.c to keep all the tests available from the test_xsk.sh script. Reviewed-by: Maciej Fijalkowski Signed-off-by: Bastien Curutchet (eBPF Foundation) --- tools/testing/selftests/bpf/test_xsk.h | 34 ++++++++++++++++++++--------= ---- tools/testing/selftests/bpf/xskxceiver.c | 15 ++++++++++---- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/tools/testing/selftests/bpf/test_xsk.h b/tools/testing/selftes= ts/bpf/test_xsk.h index b068b25ea5da728fad1e17b894d6a1b1c9794f74..8fc78a057de0bed1792be8f91c0= c5594c1122fdf 100644 --- a/tools/testing/selftests/bpf/test_xsk.h +++ b/tools/testing/selftests/bpf/test_xsk.h @@ -254,14 +254,9 @@ static const struct test_spec tests[] =3D { {.name =3D "POLL_TX", .test_func =3D testapp_poll_tx}, {.name =3D "POLL_RXQ_FULL", .test_func =3D testapp_poll_rxq_tmout}, {.name =3D "POLL_TXQ_FULL", .test_func =3D testapp_poll_txq_tmout}, - {.name =3D "SEND_RECEIVE_UNALIGNED", .test_func =3D testapp_send_receive_= unaligned}, {.name =3D "ALIGNED_INV_DESC", .test_func =3D testapp_aligned_inv_desc}, {.name =3D "ALIGNED_INV_DESC_2K_FRAME_SIZE", .test_func =3D testapp_align= ed_inv_desc_2k_frame}, - {.name =3D "UNALIGNED_INV_DESC", .test_func =3D testapp_unaligned_inv_des= c}, - {.name =3D "UNALIGNED_INV_DESC_4001_FRAME_SIZE", - .test_func =3D testapp_unaligned_inv_desc_4001_frame}, {.name =3D "UMEM_HEADROOM", .test_func =3D testapp_headroom}, - {.name =3D "TEARDOWN", .test_func =3D testapp_teardown}, {.name =3D "BIDIRECTIONAL", .test_func =3D testapp_bidirectional}, {.name =3D "STAT_RX_DROPPED", .test_func =3D testapp_stats_rx_dropped}, {.name =3D "STAT_TX_INVALID", .test_func =3D testapp_stats_tx_invalid_des= cs}, @@ -272,19 +267,32 @@ static const struct test_spec tests[] =3D { {.name =3D "XDP_SHARED_UMEM", .test_func =3D testapp_xdp_shared_umem}, {.name =3D "XDP_METADATA_COPY", .test_func =3D testapp_xdp_metadata}, {.name =3D "XDP_METADATA_COPY_MULTI_BUFF", .test_func =3D testapp_xdp_met= adata_mb}, - {.name =3D "SEND_RECEIVE_9K_PACKETS", .test_func =3D testapp_send_receive= _mb}, - {.name =3D "SEND_RECEIVE_UNALIGNED_9K_PACKETS", - .test_func =3D testapp_send_receive_unaligned_mb}, {.name =3D "ALIGNED_INV_DESC_MULTI_BUFF", .test_func =3D testapp_aligned_= inv_desc_mb}, - {.name =3D "UNALIGNED_INV_DESC_MULTI_BUFF", .test_func =3D testapp_unalig= ned_inv_desc_mb}, {.name =3D "TOO_MANY_FRAGS", .test_func =3D testapp_too_many_frags}, - {.name =3D "HW_SW_MIN_RING_SIZE", .test_func =3D testapp_hw_sw_min_ring_s= ize}, - {.name =3D "HW_SW_MAX_RING_SIZE", .test_func =3D testapp_hw_sw_max_ring_s= ize}, {.name =3D "XDP_ADJUST_TAIL_SHRINK", .test_func =3D testapp_adjust_tail_s= hrink}, + {.name =3D "TX_QUEUE_CONSUMER", .test_func =3D testapp_tx_queue_consumer}, + }; + +static const struct test_spec ci_skip_tests[] =3D { + /* Flaky tests */ {.name =3D "XDP_ADJUST_TAIL_SHRINK_MULTI_BUFF", .test_func =3D testapp_ad= just_tail_shrink_mb}, {.name =3D "XDP_ADJUST_TAIL_GROW", .test_func =3D testapp_adjust_tail_gro= w}, {.name =3D "XDP_ADJUST_TAIL_GROW_MULTI_BUFF", .test_func =3D testapp_adju= st_tail_grow_mb}, - {.name =3D "TX_QUEUE_CONSUMER", .test_func =3D testapp_tx_queue_consumer}, - }; + {.name =3D "SEND_RECEIVE_9K_PACKETS", .test_func =3D testapp_send_receive= _mb}, + /* Tests with huge page dependency */ + {.name =3D "SEND_RECEIVE_UNALIGNED", .test_func =3D testapp_send_receive_= unaligned}, + {.name =3D "UNALIGNED_INV_DESC", .test_func =3D testapp_unaligned_inv_des= c}, + {.name =3D "UNALIGNED_INV_DESC_4001_FRAME_SIZE", + .test_func =3D testapp_unaligned_inv_desc_4001_frame}, + {.name =3D "SEND_RECEIVE_UNALIGNED_9K_PACKETS", + .test_func =3D testapp_send_receive_unaligned_mb}, + {.name =3D "UNALIGNED_INV_DESC_MULTI_BUFF", .test_func =3D testapp_unalig= ned_inv_desc_mb}, + /* Test with HW ring size dependency */ + {.name =3D "HW_SW_MIN_RING_SIZE", .test_func =3D testapp_hw_sw_min_ring_s= ize}, + {.name =3D "HW_SW_MAX_RING_SIZE", .test_func =3D testapp_hw_sw_max_ring_s= ize}, + /* Too long test */ + {.name =3D "TEARDOWN", .test_func =3D testapp_teardown}, +}; + =20 #endif /* TEST_XSK_H_ */ diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selft= ests/bpf/xskxceiver.c index a16d3ed3629a995e2bcdd7357437451f059d213e..57fa4b3f0decf76b022c79b543b= 1a906f0c89076 100644 --- a/tools/testing/selftests/bpf/xskxceiver.c +++ b/tools/testing/selftests/bpf/xskxceiver.c @@ -326,10 +326,13 @@ static void print_tests(void) printf("Tests:\n"); for (i =3D 0; i < ARRAY_SIZE(tests); i++) printf("%u: %s\n", i, tests[i].name); + for (i =3D ARRAY_SIZE(tests); i < ARRAY_SIZE(tests) + ARRAY_SIZE(ci_skip_= tests); i++) + printf("%u: %s\n", i, ci_skip_tests[i - ARRAY_SIZE(tests)].name); } =20 int main(int argc, char **argv) { + const size_t total_tests =3D ARRAY_SIZE(tests) + ARRAY_SIZE(ci_skip_tests= ); struct pkt_stream *rx_pkt_stream_default; struct pkt_stream *tx_pkt_stream_default; struct ifobject *ifobj_tx, *ifobj_rx; @@ -357,7 +360,7 @@ int main(int argc, char **argv) print_tests(); ksft_exit_xpass(); } - if (opt_run_test !=3D RUN_ALL_TESTS && opt_run_test >=3D ARRAY_SIZE(tests= )) { + if (opt_run_test !=3D RUN_ALL_TESTS && opt_run_test >=3D total_tests) { ksft_print_msg("Error: test %u does not exist.\n", opt_run_test); ksft_exit_xfail(); } @@ -397,7 +400,7 @@ int main(int argc, char **argv) test.rx_pkt_stream_default =3D rx_pkt_stream_default; =20 if (opt_run_test =3D=3D RUN_ALL_TESTS) - nb_tests =3D ARRAY_SIZE(tests); + nb_tests =3D total_tests; else nb_tests =3D 1; if (opt_mode =3D=3D TEST_MODE_ALL) { @@ -419,11 +422,15 @@ int main(int argc, char **argv) if (opt_mode !=3D TEST_MODE_ALL && i !=3D opt_mode) continue; =20 - for (j =3D 0; j < ARRAY_SIZE(tests); j++) { + for (j =3D 0; j < total_tests; j++) { if (opt_run_test !=3D RUN_ALL_TESTS && j !=3D opt_run_test) continue; =20 - test_init(&test, ifobj_tx, ifobj_rx, i, &tests[j]); + if (j < ARRAY_SIZE(tests)) + test_init(&test, ifobj_tx, ifobj_rx, i, &tests[j]); + else + test_init(&test, ifobj_tx, ifobj_rx, i, + &ci_skip_tests[j - ARRAY_SIZE(tests)]); run_pkt_test(&test); usleep(USLEEP_MAX); =20 --=20 2.51.0