#
1c3b01b5 |
| 12-Aug-2024 |
Matthieu Baerts (NGI0) <matttbe@kernel.org> |
Revert "selftests: mptcp: simult flows: mark 'unbalanced' tests as flaky"
This reverts commit 052c9f0c140c78e5d6826688b5d2f33e19db0ae7.
If the test doesn't pass, we can get this error:
# ./simul
Revert "selftests: mptcp: simult flows: mark 'unbalanced' tests as flaky"
This reverts commit 052c9f0c140c78e5d6826688b5d2f33e19db0ae7.
If the test doesn't pass, we can get this error:
# ./simult_flows.sh: line 275: mptcp_lib_subtest_is_flaky: command not found
This patch is not needed in v6.6: it is there to mark a test as "flaky", but the MPTCP selftests infrastructure in v6.6 doesn't support them. So it looks better to revert this patch.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
99ac814e |
| 05-Apr-2024 |
Geliang Tang <tanggeliang@kylinos.cn> |
selftests: mptcp: add ms units for tc-netem delay
[ Upstream commit 9109853a388b7b2b934f56f4ddb250d72e486555 ]
'delay 1' in tc-netem is confusing, not sure if it's a delay of 1 second or 1 millisec
selftests: mptcp: add ms units for tc-netem delay
[ Upstream commit 9109853a388b7b2b934f56f4ddb250d72e486555 ]
'delay 1' in tc-netem is confusing, not sure if it's a delay of 1 second or 1 millisecond. This patch explicitly adds millisecond units to make these commands clearer.
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of: 38af56e6668b ("selftests: mptcp: join: mark 'fail' tests as flaky") Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
#
052c9f0c |
| 24-May-2024 |
Matthieu Baerts (NGI0) <matttbe@kernel.org> |
selftests: mptcp: simult flows: mark 'unbalanced' tests as flaky
[ Upstream commit cc73a6577ae64247898269d138dee6b73ff710cc ]
These tests are flaky since their introduction. This might be less or n
selftests: mptcp: simult flows: mark 'unbalanced' tests as flaky
[ Upstream commit cc73a6577ae64247898269d138dee6b73ff710cc ]
These tests are flaky since their introduction. This might be less or not visible depending on the CI running the tests, especially if it is also busy doing other tasks in parallel.
A first analysis shown that the transfer can be slowed down when there are some re-injections at the MPTCP level. Such re-injections can of course happen, and disturb the transfer, but it looks strange to have them in this lab. That could be caused by the kernel having access to less CPU cycles -- e.g. when other activities are executed in parallel -- or by a misinterpretation on the MPTCP packet scheduler side.
While this is being investigated, the tests are marked as flaky not to create noises in other CIs.
Fixes: 219d04992b68 ("mptcp: push pending frames when subflow has free space") Link: https://github.com/multipath-tcp/mptcp_net-next/issues/475 Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://lore.kernel.org/r/20240524-upstream-net-20240524-selftests-mptcp-flaky-v1-2-a352362f3f8e@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
#
e2ee3c62 |
| 31-Jan-2024 |
Matthieu Baerts (NGI0) <matttbe@kernel.org> |
selftests: mptcp: decrease BW in simult flows
[ Upstream commit 5e2f3c65af47e527ccac54060cf909e3306652ff ]
When running the simult_flow selftest in slow environments -- e.g. QEmu without KVM suppor
selftests: mptcp: decrease BW in simult flows
[ Upstream commit 5e2f3c65af47e527ccac54060cf909e3306652ff ]
When running the simult_flow selftest in slow environments -- e.g. QEmu without KVM support --, the results can be unstable. This selftest checks if the aggregated bandwidth is (almost) fully used as expected.
To help improving the stability while still keeping the same validation in place, the BW and the delay are reduced to lower the pressure on the CPU.
Fixes: 1a418cb8e888 ("mptcp: simult flow self-tests") Fixes: 219d04992b68 ("mptcp: push pending frames when subflow has free space") Cc: stable@vger.kernel.org Suggested-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://lore.kernel.org/r/20240131-upstream-net-20240131-mptcp-ci-issues-v1-6-4c1c11e571ff@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
#
db887e24 |
| 15-Feb-2024 |
Matthieu Baerts (NGI0) <matttbe@kernel.org> |
selftests: mptcp: simult flows: fix some subtest names
commit 4d8e0dde0403b5a86aa83e243f020711a9c3e31f upstream.
The selftest was correctly recording all the results, but the 'reverse direction' pa
selftests: mptcp: simult flows: fix some subtest names
commit 4d8e0dde0403b5a86aa83e243f020711a9c3e31f upstream.
The selftest was correctly recording all the results, but the 'reverse direction' part was missing in the name when needed.
It is important to have a unique (sub)test name in TAP, because some CI environments drop tests with duplicated name.
Fixes: 675d99338e7a ("selftests: mptcp: simult flows: format subtests results in TAP") Cc: stable@vger.kernel.org Reviewed-by: Geliang Tang <geliang@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
show more ...
|
#
675d9933 |
| 17-Jul-2023 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: simult flows: format subtests results in TAP
The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of ea
selftests: mptcp: simult flows: format subtests results in TAP
The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests.
MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest.
It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored.
This patch formats subtests results in TAP in simult_flows.sh selftest.
Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
9161f21c |
| 28-May-2023 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: simult flows: skip if MPTCP is not supported
Selftests are supposed to run on any kernels, including the old ones not supporting MPTCP.
A new check is then added to make sure MPTC
selftests: mptcp: simult flows: skip if MPTCP is not supported
Selftests are supposed to run on any kernels, including the old ones not supporting MPTCP.
A new check is then added to make sure MPTCP is supported. If not, the test stops and is marked as "skipped".
Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes: 1a418cb8e888 ("mptcp: simult flow self-tests") Cc: stable@vger.kernel.org Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
show more ...
|
#
787eb1e4 |
| 30-Nov-2022 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: uniform 'rndh' variable
The definition of 'rndh' was probably copied from one script to another but some times, 'sec' was not defined, not used and/or not spelled properly.
Here a
selftests: mptcp: uniform 'rndh' variable
The definition of 'rndh' was probably copied from one script to another but some times, 'sec' was not defined, not used and/or not spelled properly.
Here all the 'rndh' are now defined the same way.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
b71dd705 |
| 30-Nov-2022 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: removed defined but unused vars
Some variables were set but never used.
This was not causing any issues except adding some confusion and having shellcheck complaining about them.
selftests: mptcp: removed defined but unused vars
Some variables were set but never used.
This was not causing any issues except adding some confusion and having shellcheck complaining about them.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
3de88b95 |
| 15-Nov-2022 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: fix mibit vs mbit mix up
The estimated time was supposing the rate was expressed in mibit (bit * 1024^2) but it is in mbit (bit * 1000^2).
This makes the threshold higher but in a
selftests: mptcp: fix mibit vs mbit mix up
The estimated time was supposing the rate was expressed in mibit (bit * 1024^2) but it is in mbit (bit * 1000^2).
This makes the threshold higher but in a more realistic way to avoid false positives reported by CI instances.
Before this patch, the thresholds were at 7561/4005ms and now they are at 7906/4178ms.
While at it, also fix a typo in the linked comment, spotted by Mat.
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/310 Fixes: 1a418cb8e888 ("mptcp: simult flow self-tests") Suggested-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
31b4e63e |
| 10-Nov-2022 |
Geliang Tang <geliang.tang@suse.com> |
selftests: mptcp: use max_time instead of time
'time' is the local variable of run_test() function, while 'max_time' is the local variable of do_transfer() function. So in do_transfer(), $max_time s
selftests: mptcp: use max_time instead of time
'time' is the local variable of run_test() function, while 'max_time' is the local variable of do_transfer() function. So in do_transfer(), $max_time should be used, not $time.
Please note that here $time == $max_time so the behaviour is not changed but the right variable is used.
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
d0d9c8f2 |
| 08-Jul-2022 |
Paolo Abeni <pabeni@redhat.com> |
selftests: mptcp: tweak simult_flows for debug kernels
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 (virtua
selftests: mptcp: tweak simult_flows for debug kernels
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> Co-developed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
b6ab64b0 |
| 29-Oct-2021 |
Paolo Abeni <pabeni@redhat.com> |
selftests: mptcp: more stable simult_flows tests
Currently the simult_flows.sh self-tests are not very stable, especially when running on slow VMs.
The tests measure runtime for transfers on multip
selftests: mptcp: more stable simult_flows tests
Currently the simult_flows.sh self-tests are not very stable, especially when running on slow VMs.
The tests measure runtime for transfers on multiple subflows and check that the time is near the theoretical maximum.
The current test infra introduces a bit of jitter in test runtime, due to multiple explicit delays. Additionally the runtime is measured by the shell script wrapper. On a slow VM, the script overhead is measurable and subject to relevant jitter.
One solution to make the test more stable would be adding more slack to the expected time; that could possibly hide real regressions. Instead move the measurement inside the command doing the transfer, and drop most unneeded sleeps.
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
bfd862a7 |
| 01-Sep-2021 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: clean tmp files in simult_flows
'$cin' and '$sin' variables are local to a function: they are then not available from the cleanup trap.
Instead, we need to use '$large' and '$smal
selftests: mptcp: clean tmp files in simult_flows
'$cin' and '$sin' variables are local to a function: they are then not available from the cleanup trap.
Instead, we need to use '$large' and '$small' that are not local and defined just before setting the trap.
Without this patch, running this script in a loop might cause a:
write: No space left on device
issue.
Fixes: 1a418cb8e888 ("mptcp: simult flow self-tests") Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
d8e336f7 |
| 22-Jun-2021 |
Yonglong Li <liyonglong@chinatelecom.cn> |
selftests: mptcp: turn rp_filter off on each NIC
To turn rp_filter off we should:
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
and
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
before
selftests: mptcp: turn rp_filter off on each NIC
To turn rp_filter off we should:
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
and
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
before NIC created.
Co-developed-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Yonglong Li <liyonglong@chinatelecom.cn> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
5888a61c |
| 01-Apr-2021 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: launch mptcp_connect with timeout
'mptcp_connect' already has a timeout for poll() but in some cases, it is not enough.
With "timeout" tool, we will force the command to fail if i
selftests: mptcp: launch mptcp_connect with timeout
'mptcp_connect' already has a timeout for poll() but in some cases, it is not enough.
With "timeout" tool, we will force the command to fail if it doesn't finish on time. Thanks to that, the script will continue and display details about the current state before marking the test as failed. Displaying this state is very important to be able to understand the issue. Best to have our CI reporting the issue than just "the test hanged".
Note that in mptcp_connect.sh, we were using a long timeout to validate the fact we cannot create a socket if a sysctl is set. We don't need this timeout.
In diag.sh, we want to send signals to mptcp_connect instances that have been started in the netns. But we cannot send this signal to 'timeout' otherwise that will stop the timeout and messages telling us SIGUSR1 has been received will be printed. Instead of trying to find the right PID and storing them in an array, we can simply use the output of 'ip netns pids' which is all the PIDs we want to send signal to.
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/160 Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
219d0499 |
| 16-Dec-2020 |
Paolo Abeni <pabeni@redhat.com> |
mptcp: push pending frames when subflow has free space
When multiple subflows are active, we can receive a window update on subflow with no write space available. MPTCP will try to push frames on su
mptcp: push pending frames when subflow has free space
When multiple subflows are active, we can receive a window update on subflow with no write space available. MPTCP will try to push frames on such subflow and will fail. Pending frames will be pushed only after receiving a window update on a subflow with some wspace available.
Overall the above could lead to suboptimal aggregate bandwidth usage.
Instead, we should try to push pending frames as soon as the subflow reaches both conditions mentioned above.
We can finally enable self-tests with asymmetric links, as the above makes them finally pass.
Fixes: 6f8a612a33e4 ("mptcp: keep track of advertised windows right edge") Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
036dfd83 |
| 06-Oct-2020 |
Matthieu Baerts <matthieu.baerts@tessares.net> |
selftests: mptcp: interpret \n as a new line
In case of errors, this message was printed:
(...) balanced bwidth with unbalanced delay 5233 max 5005 [ fail ] client exit code 0, server
selftests: mptcp: interpret \n as a new line
In case of errors, this message was printed:
(...) balanced bwidth with unbalanced delay 5233 max 5005 [ fail ] client exit code 0, server 0 \nnetns ns3-0-EwnkPH socket stat for 10003: (...)
Obviously, the idea was to add a new line before the socket stat and not print "\nnetns".
The commit 8b974778f998 ("selftests: mptcp: interpret \n as a new line") is very similar to this one. But the modification in simult_flows.sh was missed because this commit above was done in parallel to one here below.
Fixes: 1a418cb8e888 ("mptcp: simult flow self-tests") Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Acked-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
1a418cb8 |
| 14-Sep-2020 |
Paolo Abeni <pabeni@redhat.com> |
mptcp: simult flow self-tests
Add a bunch of test-cases for multiple subflow xmit: create multiple subflows simulating different links condition via netem and verify that the msk is able to use comp
mptcp: simult flow self-tests
Add a bunch of test-cases for multiple subflow xmit: create multiple subflows simulating different links condition via netem and verify that the msk is able to use completely the aggregated bandwidth.
Signed-off-by: Paolo Abeni <pabeni@redhat.com> Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|