Re: [PATCH net] selftests: net: bump default cmd() timeout to 20 seconds
From: Tariq Toukan <tariqt@nvidia.com>
Date: 2026-07-01 19:34:42
Also in:
linux-kselftest
On 30/06/2026 2:33, Jakub Kicinski wrote:
We always used 5 sec as the default command timeout. But soon after it was introduced, David effectively made us ignore the timeout (it was passed to process.communicate() as the wrong argument). Gal recently fixed that, but turns out the 5 sec is not enough for a lot of tests and setups. The fix regressed regressions. In particular running reconfig commands (e.g. XDP attach) on mlx5 with 32 rings and 9k MTU, on a heavily-debug-enabled kernel takes more than 5 sec. The XDP installation command will time out after 5 sec but since the sleeps in the kernel are non interruptible the command finishes anyway, leaving the XDP program attached, but with non-zero exit code. defer()ed cleanups are not installed, breaking the environment for subsequent tests.
Hi Jakub, We've improved the performance of configuration change operations over the past 2 years. We have more patches to be submitted soon, in addition to planned ones. I'd be glad if you could share some details about the NIC and FW version for which you hit this 5sec timeout. Patch LGTM. Reviewed-by: Tariq Toukan <tariqt@nvidia.com> Thanks.
quoted hunk ↗ jump to hunk
Since "install XDP" is a pretty normal command a "point fix" does not seem appropriate. 32 rings is a fairly reasonable config, too, so we should just increase the timeout to 20 sec. There's no real reason behind the value of 20. Fixes: 1cf270424218 ("net: selftest: add test for netdev netlink queue-get API") Fixes: f0bd19316663 ("selftests: net: fix timeout passed as positional argument to communicate()") Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- CC: shuah@kernel.org CC: petrm@nvidia.com CC: leitao@debian.org CC: dw@davidwei.uk CC: noren@nvidia.com CC: gal@nvidia.com CC: linux-kselftest@vger.kernel.org --- tools/testing/selftests/net/lib/py/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/tools/testing/selftests/net/lib/py/utils.py b/tools/testing/selftests/net/lib/py/utils.py index 308c91833239..9b40049e2dbb 100644 --- a/tools/testing/selftests/net/lib/py/utils.py +++ b/tools/testing/selftests/net/lib/py/utils.py@@ -44,7 +44,7 @@ import time Use bkg() instead to run a command in the background. """ def __init__(self, comm, shell=None, fail=True, expect_fail=False, ns=None, - background=False, host=None, timeout=5, ksft_ready=None, + background=False, host=None, timeout=20, ksft_ready=None, ksft_wait=None): if ns: if hasattr(ns, 'user_ns_path'):@@ -113,7 +113,7 @@ import time return stdout, stderr - def process(self, terminate=True, fail=None, expect_fail=False, timeout=5): + def process(self, terminate=True, fail=None, expect_fail=False, timeout=20): if fail is None: fail = not terminate