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

Stefano Brivio
2024-06-25T09:53:26Z

On Mon, 24 Jun 2024 15:30:23 -0700
Jakub Kicinski <kuba@kernel.org> wrote:

> 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.

It also looks like pyroute2 would keep everything synchronous (unless
you call NetlinkSocket.bind(async_cache=True))... weird.

> 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.
>
> > 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!)

This script was originally (and mostly is) all nice and POSIX (where
sleep doesn't take fractional numbers), so, if you don't mind, I'd
rather prefer "sleep 0.1 || sleep 1". :)

--
Stefano