Jakub Kicinski <kuba@xxxxxxxxxx> writes: > On Mon, 24 Jun 2024 12:53:45 -0400 Aaron Conole wrote: >> Additionally, the "Cannot find device ..." text comes from an iproute2 >> utility output. The only place we actually interact with that is via >> the call at pmtu.sh:973: >> >> run_cmd ip link set ovs_br0 up >> >> Maybe it is possible that the link isn't up (could some port memory >> allocation or message be delaying it?) yet in the virtual environment. > > Depends on how the creation is implemented, normally device creation > over netlink is synchronous. Just to be sure have you tried to repro > with vng: > > https://github.com/linux-netdev/nipa/wiki/How-to-run-netdev-selftests-CI-style > > ? It could be the base OS difference, too, but that's harder to confirm. Yes - that's the way I run it. But I didn't try to use any of the stress inducing options. I'll work on it with that. >> To confirm, is it possible to run in the constrained environment, but >> put a 5s sleep or something? I will add the following either as a >> separate patch (ie 7/8), or I can fold it into 6/7 (and drop Stefano's >> ACK waiting for another review): >> >> >> wait_for_if() { >> if ip link show "$2" >/dev/null 2>&1; then return 0; fi >> >> for d in `seq 1 30`; do >> sleep 1 >> if ip link show "$2" >/dev/null 2>&1; then return 0; fi >> done >> return 1 >> } >> >> .... >> setup_ovs_br_internal || setup_ovs_br_vswitchd || return $ksft_skip >> + wait_for_if "ovs_br0" >> run_cmd ip link set ovs_br0 up >> .... >> >> Does it make sense or does it seem like I am way off base? > > sleep 1 is a bit high (sleep does accept fractional numbers!) > but otherwise worth trying, if you can't repro locally. Ack.