Perhaps, ovs_netdev_tunnel_destroy() is also worth to be modified this way.
It is invoked as a vport destructor in similar code paths and even has a
nice comment about its double duty.

--
Regards,
Vladimir


On Mon, Dec 15, 2025 at 4:16 PM Aaron Conole <[email protected]> wrote:

> Toke Høiland-Jørgensen <[email protected]> writes:
>
> > The openvswitch teardown code will immediately call
> > ovs_netdev_detach_dev() in response to a NETDEV_UNREGISTER notification.
> > It will then start the dp_notify_work workqueue, which will later end up
> > calling the vport destroy() callback. This callback takes the RTNL to do
> > another ovs_netdev_detach_port(), which in this case is unnecessary.
> > This causes extra pressure on the RTNL, in some cases leading to
> > "unregister_netdevice: waiting for XX to become free" warnings on
> > teardown.
> >
> > We can straight-forwardly avoid the extra RTNL lock acquisition by
> > checking the device flags before taking the lock, and skip the locking
> > altogether if the IFF_OVS_DATAPATH flag has already been unset.
> >
> > Fixes: b07c26511e94 ("openvswitch: fix vport-netdev unregister")
> > Tested-by: Adrian Moreno <[email protected]>
> > Signed-off-by: Toke Høiland-Jørgensen <[email protected]>
> > ---
>
> LGTM,
>
> Acked-by: Aaron Conole <[email protected]>
>
>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to