On Thu, 2022-11-03 at 20:46 -0700, Jakub Kicinski wrote:
On Tue, 1 Nov 2022 14:48:08 -0400 Adrien Thierry wrote:
In some conditions, background processes in udpgro don't have enough time to set up the sockets. When foreground processes start, this results in the test failing with "./udpgso_bench_tx: sendmsg: Connection refused". For instance, this happens from time to time on a Qualcomm SA8540P SoC running CentOS Stream 9.
To fix this, increase the time given to background processes to complete the startup before foreground processes start.
Signed-off-by: Adrien Thierry athierry@redhat.com
This is a continuation of the hack that's present in those tests. Other ideas are welcome to fix this in a more permanent way.
Perhaps we can add an option to the Rx side to daemonize itself after setting up the socket, that way the bash script will be locked until Rx is ready?
Then it will be less straigh-forward for the running shell waiting for all the running processes.
Another option would be replacing the sleep with a loop waiting for the rx UDP socket to appear in the procfs or diag interface, alike what mptcp self-tests (random example;) are doing:
https://elixir.bootlin.com/linux/v6.1-rc3/source/tools/testing/selftests/net...
Cheers,
Paolo