The gro self-tests sends the packets to be aggregated with multiple write operations.
When running is slow environment, it's hard to guarantee that the GRO engine will wait for the last packet in an intended train.
The above causes almost deterministic failures in our CI for the 'large' test-case.
Address the issue explicitly ignoring failures for such case in slow environments (KSFT_MACHINE_SLOW==true).
Fixes: 7d1575014a63 ("selftests/net: GRO coalesce test") Reviewed-by: Willem de Bruijn willemb@google.com Signed-off-by: Paolo Abeni pabeni@redhat.com --- v1 -> v2: - replace the '-a' operator with '&&' - Mattbe
Note that the fixes tag is there mainly to justify targeting the net tree, and this is aiming at net to hopefully make the test more stable ASAP for both trees.
I experimented with a largish refactory replacing the multiple writes with a single GSO packet, but exhausted by time budget before reaching any good result. --- tools/testing/selftests/net/gro.sh | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/testing/selftests/net/gro.sh b/tools/testing/selftests/net/gro.sh index 19352f106c1d..3190b41e8bfc 100755 --- a/tools/testing/selftests/net/gro.sh +++ b/tools/testing/selftests/net/gro.sh @@ -31,6 +31,10 @@ run_test() { 1>>log.txt wait "${server_pid}" exit_code=$? + if [[ ${test} == "large" && -n "${KSFT_MACHINE_SLOW}" ]]; then + echo "Ignoring errors due to slow environment" 1>&2 + exit_code=0 + fi if [[ "${exit_code}" -eq 0 ]]; then break; fi
Hi Paolo,
On 07/02/2024 19:36, Paolo Abeni wrote:
The gro self-tests sends the packets to be aggregated with multiple write operations.
When running is slow environment, it's hard to guarantee that the GRO engine will wait for the last packet in an intended train.
The above causes almost deterministic failures in our CI for the 'large' test-case.
Address the issue explicitly ignoring failures for such case in slow environments (KSFT_MACHINE_SLOW==true).
Fixes: 7d1575014a63 ("selftests/net: GRO coalesce test") Reviewed-by: Willem de Bruijn willemb@google.com Signed-off-by: Paolo Abeni pabeni@redhat.com
v1 -> v2:
- replace the '-a' operator with '&&' - Mattbe
Thank you for the v2!
Reviewed-by: Matthieu Baerts (NGI0) matttbe@kernel.org
Cheers, Matt
On Wed, 7 Feb 2024 19:36:46 +0100 Paolo Abeni wrote:
- if [[ ${test} == "large" && -n "${KSFT_MACHINE_SLOW}" ]]; then
echo "Ignoring errors due to slow environment" 1>&2
exit_code=0
- fi
Would it make sense to also add "&& $exit_code -ne 0" ? It may be useful to see in logs how many times we actually ignored the error?
On Fri, 2024-02-09 at 11:15 -0800, Jakub Kicinski wrote:
On Wed, 7 Feb 2024 19:36:46 +0100 Paolo Abeni wrote:
- if [[ ${test} == "large" && -n "${KSFT_MACHINE_SLOW}" ]]; then
echo "Ignoring errors due to slow environment" 1>&2
exit_code=0
- fi
Would it make sense to also add "&& $exit_code -ne 0" ? It may be useful to see in logs how many times we actually ignored the error?
Yep, I'll send a v3.
Thanks!
Paolo
linux-kselftest-mirror@lists.linaro.org