* [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels. @ 2022-06-16 13:55 Paolo Abeni 2022-06-16 15:27 ` selftests: mptcp: tweak simult_flows for debug kernels.: Tests Results MPTCP CI 2022-06-20 16:38 ` [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels Matthieu Baerts 0 siblings, 2 replies; 4+ messages in thread From: Paolo Abeni @ 2022-06-16 13:55 UTC (permalink / raw) To: mptcp The mentioned test measures the transfer run-time to verify that the user-space program is able to use the full aggregate B/W. Even on (virtual) link-speed-bound tests, debug kernel can slow down the transfer enough to cause sporadic test failures. Instead of unconditionally raising the maximum allowed run-time, tweak when the running kernel is a debug one, and use some simple/ rough heuristic to guess such scenarios. Note: this intentionally avoids looking for /boot/config-<version> as the latter file is not always available in our reference CI environments. Signed-off-by: Paolo Abeni <pabeni@redhat.com> --- tools/testing/selftests/net/mptcp/simult_flows.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh index f441ff7904fc..141fcf0d40d1 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -12,6 +12,7 @@ timeout_test=$((timeout_poll * 2 + 1)) test_cnt=1 ret=0 bail=0 +slack=50 usage() { echo "Usage: $0 [ -b ] [ -c ] [ -d ]" @@ -52,6 +53,7 @@ setup() cout=$(mktemp) capout=$(mktemp) size=$((2 * 2048 * 4096)) + dd if=/dev/zero of=$small bs=4096 count=20 >/dev/null 2>&1 dd if=/dev/zero of=$large bs=4096 count=$((size / 4096)) >/dev/null 2>&1 @@ -104,6 +106,13 @@ setup() ip -net "$ns3" route add default via dead:beef:3::2 ip netns exec "$ns3" ./pm_nl_ctl limits 1 1 + + # debug build can slow down measurably the test program + # we use quite tight time limit on the run-time, to ensure + # maximum B/W usage. + # Use the kmemleak file presence as a rough estimate for this being + # a debug kernel and increase the maximum run-time accordingly + [ -f /sys/kernel/debug/kmemleak ] && slack=$((slack+200)) } # $1: ns, $2: port @@ -241,7 +250,7 @@ run_test() # mptcp_connect will do some sleeps to allow the mp_join handshake # completion (see mptcp_connect): 200ms on each side, add some slack - time=$((time + 450)) + time=$((time + 400 + $slack)) printf "%-60s" "$msg" do_transfer $small $large $time -- 2.35.3 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: selftests: mptcp: tweak simult_flows for debug kernels.: Tests Results 2022-06-16 13:55 [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels Paolo Abeni @ 2022-06-16 15:27 ` MPTCP CI 2022-06-17 22:13 ` several messages Mat Martineau 2022-06-20 16:38 ` [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels Matthieu Baerts 1 sibling, 1 reply; 4+ messages in thread From: MPTCP CI @ 2022-06-16 15:27 UTC (permalink / raw) To: Paolo Abeni; +Cc: mptcp Hi Paolo, Thank you for your modifications, that's great! Our CI did some validations and here is its report: - KVM Validation: normal: - Success! ✅: - Task: https://cirrus-ci.com/task/5708948505362432 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5708948505362432/summary/summary.txt - KVM Validation: debug: - Unstable: 3 failed test(s): packetdrill_add_addr selftest_diag selftest_mptcp_join 🔴: - Task: https://cirrus-ci.com/task/5145998551941120 - Summary: https://api.cirrus-ci.com/v1/artifact/task/5145998551941120/summary/summary.txt Initiator: Patchew Applier Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/727243b29682 If there are some issues, you can reproduce them using the same environment as the one used by the CI thanks to a docker image, e.g.: $ cd [kernel source code] $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \ --pull always mptcp/mptcp-upstream-virtme-docker:latest \ auto-debug For more details: https://github.com/multipath-tcp/mptcp-upstream-virtme-docker Please note that despite all the efforts that have been already done to have a stable tests suite when executed on a public CI like here, it is possible some reported issues are not due to your modifications. Still, do not hesitate to help us improve that ;-) Cheers, MPTCP GH Action bot Bot operated by Matthieu Baerts (Tessares) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: several messages 2022-06-16 15:27 ` selftests: mptcp: tweak simult_flows for debug kernels.: Tests Results MPTCP CI @ 2022-06-17 22:13 ` Mat Martineau 0 siblings, 0 replies; 4+ messages in thread From: Mat Martineau @ 2022-06-17 22:13 UTC (permalink / raw) To: Paolo Abeni, mptcp [-- Attachment #1: Type: text/plain, Size: 3986 bytes --] On Thu, 16 Jun 2022, Paolo Abeni wrote: > The mentioned test measures the transfer run-time to verify > that the user-space program is able to use the full aggregate B/W. > > Even on (virtual) link-speed-bound tests, debug kernel can slow > down the transfer enough to cause sporadic test failures. > > Instead of unconditionally raising the maximum allowed run-time, > tweak when the running kernel is a debug one, and use some simple/ > rough heuristic to guess such scenarios. > > Note: this intentionally avoids looking for /boot/config-<version> as > the latter file is not always available in our reference CI > environments. > > Signed-off-by: Paolo Abeni <pabeni@redhat.com> Looks good, runs fine in my vm with debug kernel config: Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> > --- > tools/testing/selftests/net/mptcp/simult_flows.sh | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh > index f441ff7904fc..141fcf0d40d1 100755 > --- a/tools/testing/selftests/net/mptcp/simult_flows.sh > +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh > @@ -12,6 +12,7 @@ timeout_test=$((timeout_poll * 2 + 1)) > test_cnt=1 > ret=0 > bail=0 > +slack=50 > > usage() { > echo "Usage: $0 [ -b ] [ -c ] [ -d ]" > @@ -52,6 +53,7 @@ setup() > cout=$(mktemp) > capout=$(mktemp) > size=$((2 * 2048 * 4096)) > + > dd if=/dev/zero of=$small bs=4096 count=20 >/dev/null 2>&1 > dd if=/dev/zero of=$large bs=4096 count=$((size / 4096)) >/dev/null 2>&1 > > @@ -104,6 +106,13 @@ setup() > ip -net "$ns3" route add default via dead:beef:3::2 > > ip netns exec "$ns3" ./pm_nl_ctl limits 1 1 > + > + # debug build can slow down measurably the test program > + # we use quite tight time limit on the run-time, to ensure > + # maximum B/W usage. > + # Use the kmemleak file presence as a rough estimate for this being > + # a debug kernel and increase the maximum run-time accordingly > + [ -f /sys/kernel/debug/kmemleak ] && slack=$((slack+200)) > } > > # $1: ns, $2: port > @@ -241,7 +250,7 @@ run_test() > > # mptcp_connect will do some sleeps to allow the mp_join handshake > # completion (see mptcp_connect): 200ms on each side, add some slack > - time=$((time + 450)) > + time=$((time + 400 + $slack)) > > printf "%-60s" "$msg" > do_transfer $small $large $time > -- > 2.35.3 > > > On Thu, 16 Jun 2022, MPTCP CI wrote: > Hi Paolo, > > Thank you for your modifications, that's great! > > Our CI did some validations and here is its report: > > - KVM Validation: normal: > - Success! ✅: > - Task: https://cirrus-ci.com/task/5708948505362432 > - Summary: https://api.cirrus-ci.com/v1/artifact/task/5708948505362432/summary/summary.txt > > - KVM Validation: debug: > - Unstable: 3 failed test(s): packetdrill_add_addr selftest_diag selftest_mptcp_join 🔴: > - Task: https://cirrus-ci.com/task/5145998551941120 > - Summary: https://api.cirrus-ci.com/v1/artifact/task/5145998551941120/summary/summary.txt > > Initiator: Patchew Applier > Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/727243b29682 > > > If there are some issues, you can reproduce them using the same environment as > the one used by the CI thanks to a docker image, e.g.: > > $ cd [kernel source code] > $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \ > --pull always mptcp/mptcp-upstream-virtme-docker:latest \ > auto-debug > > For more details: > > https://github.com/multipath-tcp/mptcp-upstream-virtme-docker > > > Please note that despite all the efforts that have been already done to have a > stable tests suite when executed on a public CI like here, it is possible some > reported issues are not due to your modifications. Still, do not hesitate to > help us improve that ;-) > > Cheers, > MPTCP GH Action bot > Bot operated by Matthieu Baerts (Tessares) > > -- Mat Martineau Intel ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels. 2022-06-16 13:55 [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels Paolo Abeni 2022-06-16 15:27 ` selftests: mptcp: tweak simult_flows for debug kernels.: Tests Results MPTCP CI @ 2022-06-20 16:38 ` Matthieu Baerts 1 sibling, 0 replies; 4+ messages in thread From: Matthieu Baerts @ 2022-06-20 16:38 UTC (permalink / raw) To: Paolo Abeni, mptcp Hi Paolo, Mat, On 16/06/2022 15:55, Paolo Abeni wrote: > The mentioned test measures the transfer run-time to verify > that the user-space program is able to use the full aggregate B/W. > > Even on (virtual) link-speed-bound tests, debug kernel can slow > down the transfer enough to cause sporadic test failures. > > Instead of unconditionally raising the maximum allowed run-time, > tweak when the running kernel is a debug one, and use some simple/ > rough heuristic to guess such scenarios. > > Note: this intentionally avoids looking for /boot/config-<version> as > the latter file is not always available in our reference CI > environments. Thank you for the patch and review! Now in our tree (feat. for net-next but it could also go in 'fixes for -net', no?) with Mat's RvB tag and a small diff, see below: New patches for t/upstream: - 87eefff9e9e8: selftests: mptcp: tweak simult_flows for debug kernels - Results: 1445c5fa4907..065936dc9f58 (export) Builds and tests are now in progress: https://cirrus-ci.com/github/multipath-tcp/mptcp_net-next/export/20220620T163537 https://github.com/multipath-tcp/mptcp_net-next/actions/workflows/build-validation.yml?query=branch:export > diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/testing/selftests/net/mptcp/simult_flows.sh > index f441ff7904fc..141fcf0d40d1 100755 > --- a/tools/testing/selftests/net/mptcp/simult_flows.sh > +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh (...) > @@ -241,7 +250,7 @@ run_test() > > # mptcp_connect will do some sleeps to allow the mp_join handshake > # completion (see mptcp_connect): 200ms on each side, add some slack > - time=$((time + 450)) > + time=$((time + 400 + $slack)) (detail: I removed the extra '$' before 'slack' just for the uniformity :) ) Cheers, Matt > > printf "%-60s" "$msg" > do_transfer $small $large $time -- Tessares | Belgium | Hybrid Access Solutions www.tessares.net ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-06-20 16:38 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-06-16 13:55 [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels Paolo Abeni 2022-06-16 15:27 ` selftests: mptcp: tweak simult_flows for debug kernels.: Tests Results MPTCP CI 2022-06-17 22:13 ` several messages Mat Martineau 2022-06-20 16:38 ` [PATCH mptcp-next] selftests: mptcp: tweak simult_flows for debug kernels Matthieu Baerts
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.