Subject: Re: [PATCH v2 net-next 0/7] selftests: net: Switch pmtu.sh to use the internal ovs script.

From: Aaron Conole <[email-masked]>
Date: Tue, 25 Jun 2024 09:18:36 -0400

Jakub Kicinski <[email-masked]> 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.