From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: Yi Lai <yi1.lai@intel.com>, Zhu Yanjun <zyjzyj2000@gmail.com>,
Jason Gunthorpe <jgg@ziepe.ca>, Leon Romanovsky <leon@kernel.org>,
Shuah Khan <shuah@kernel.org>,
linux-rdma@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org, yi1.lai@linux.intel.com,
"yanjun.zhu@linux.dev" <yanjun.zhu@linux.dev>
Subject: Re: [PATCH] selftests/rdma: explicitly skip tests when required modules are missing
Date: Thu, 7 May 2026 21:21:09 -0700 [thread overview]
Message-ID: <63aa67fb-5c8b-42be-a38f-cd5a92ac528a@linux.dev> (raw)
In-Reply-To: <20260507125106.3114167-1-yi1.lai@intel.com>
在 2026/5/7 5:51, Yi Lai 写道:
> Currently, the rdma rxe selftests fail with an exit code of 1 when
> required kernel modules are not present. This causes spurious failures
> in environments where these modules might not be compiled or available.
>
> Include the standard kselftest 'ktap_helpers.sh' and replace the
> hardcoded error exits with '$KSFT_SKIP'. This ensures the tests are
> properly marked as skipped rather than failed.
tools/testing/selftests/rdma/rxe_rping_between_netns.sh:30:modprobe
rdma_rxe || { echo "Failed to load rdma_rxe"; exit 1; }
tools/testing/selftests/rdma/rxe_socket_with_netns.sh:29: modprobe "$m"
|| { echo "Error: Failed to load $m"; exit 1; }
In the above script files, if modprobe fails, exit 1;
I am wondering if we need to replace error code 1 with $KSFT_SKIP.
Except the above, I am fine with this commit.
Reviewed-by: Zhu Yanjun <yanjun.zhu@linux.dev>
Zhu Yanjun
>
> Signed-off-by: Yi Lai <yi1.lai@intel.com>
> ---
> tools/testing/selftests/rdma/rxe_ipv6.sh | 6 ++++--
> tools/testing/selftests/rdma/rxe_rping_between_netns.sh | 7 +++++++
> tools/testing/selftests/rdma/rxe_socket_with_netns.sh | 6 ++++++
> tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh | 6 ++++--
> 4 files changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/rdma/rxe_ipv6.sh b/tools/testing/selftests/rdma/rxe_ipv6.sh
> index b7059bfd6d7c..32dad687a044 100755
> --- a/tools/testing/selftests/rdma/rxe_ipv6.sh
> +++ b/tools/testing/selftests/rdma/rxe_ipv6.sh
> @@ -8,6 +8,8 @@ RXE_NAME="rxe6"
> PORT=4791
> IP6_ADDR="2001:db8::1/64"
>
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
> exec > /dev/null
>
> # Cleanup function to run on exit (even on failure)
> @@ -21,8 +23,8 @@ trap cleanup EXIT
> # 1. Prerequisites check
> for mod in tun veth rdma_rxe; do
> if ! modinfo "$mod" >/dev/null 2>&1; then
> - echo "Error: Kernel module '$mod' not found."
> - exit 1
> + echo "SKIP: Kernel module '$mod' not found." >&2
> + exit $KSFT_SKIP
> fi
> done
>
> diff --git a/tools/testing/selftests/rdma/rxe_rping_between_netns.sh b/tools/testing/selftests/rdma/rxe_rping_between_netns.sh
> index e5b876f58c6e..e7554fbb8951 100755
> --- a/tools/testing/selftests/rdma/rxe_rping_between_netns.sh
> +++ b/tools/testing/selftests/rdma/rxe_rping_between_netns.sh
> @@ -8,6 +8,8 @@ IP_A="1.1.1.1"
> IP_B="1.1.1.2"
> PORT=4791
>
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
> exec > /dev/null
>
> # --- Cleanup Routine ---
> @@ -27,6 +29,11 @@ if [[ $EUID -ne 0 ]]; then
> exit 1
> fi
>
> +if ! modinfo rdma_rxe >/dev/null 2>&1; then
> + echo "SKIP: Kernel module 'rdma_rxe' not found." >&2
> + exit $KSFT_SKIP
> +fi
> +
> modprobe rdma_rxe || { echo "Failed to load rdma_rxe"; exit 1; }
>
> # --- Setup Network Topology ---
> diff --git a/tools/testing/selftests/rdma/rxe_socket_with_netns.sh b/tools/testing/selftests/rdma/rxe_socket_with_netns.sh
> index 002e5098f751..9478657c02c1 100755
> --- a/tools/testing/selftests/rdma/rxe_socket_with_netns.sh
> +++ b/tools/testing/selftests/rdma/rxe_socket_with_netns.sh
> @@ -4,6 +4,8 @@
> PORT=4791
> MODS=("tun" "rdma_rxe")
>
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
> exec > /dev/null
>
> # --- Helper: Cleanup Routine ---
> @@ -26,6 +28,10 @@ if [[ $EUID -ne 0 ]]; then
> fi
>
> for m in "${MODS[@]}"; do
> + if ! modinfo "$m" >/dev/null 2>&1; then
> + echo "SKIP: Kernel module '$m' not found." >&2
> + exit $KSFT_SKIP
> + fi
> modprobe "$m" || { echo "Error: Failed to load $m"; exit 1; }
> done
>
> diff --git a/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh b/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh
> index 021ca451499d..8c18cea7535c 100755
> --- a/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh
> +++ b/tools/testing/selftests/rdma/rxe_test_NETDEV_UNREGISTER.sh
> @@ -5,6 +5,8 @@ DEV_NAME="tun0"
> RXE_NAME="rxe0"
> RDMA_PORT=4791
>
> +source "$(dirname "$0")/../kselftest/ktap_helpers.sh"
> +
> exec > /dev/null
>
> # --- Cleanup Routine ---
> @@ -19,8 +21,8 @@ trap cleanup EXIT
>
> # 1. Dependency Check
> if ! modinfo rdma_rxe >/dev/null 2>&1; then
> - echo "Error: rdma_rxe module not found."
> - exit 1
> + echo "SKIP: rdma_rxe module not found." >&2
> + exit $KSFT_SKIP
> fi
>
> modprobe rdma_rxe
--
Best Regards,
Yanjun.Zhu
next prev parent reply other threads:[~2026-05-08 4:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 12:51 [PATCH] selftests/rdma: explicitly skip tests when required modules are missing Yi Lai
2026-05-08 4:21 ` Zhu Yanjun [this message]
2026-05-08 11:24 ` Lai, Yi
2026-05-13 18:29 ` Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=63aa67fb-5c8b-42be-a38f-cd5a92ac528a@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=shuah@kernel.org \
--cc=yi1.lai@intel.com \
--cc=yi1.lai@linux.intel.com \
--cc=zyjzyj2000@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.