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@xxxxxxxxxx> > > --- > > 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/mptcp/mptcp_join.sh#L424 Cheers, Paolo