Re: [PATCH v2] net: openvswitch: Avoid needlessly taking the RTNL on vport destroy
From: Eelco Chaudron <echaudro@redhat.com>
Date: 2025-12-22 11:44:12
On 22 Dec 2025, at 12:29, Paolo Abeni wrote:
On 12/15/25 1:31 PM, Eelco Chaudron wrote:quoted
On 15 Dec 2025, at 12:58, Toke Høiland-Jørgensen wrote:quoted
Eelco Chaudron [off-list ref] writes:quoted
On 11 Dec 2025, at 12:50, Toke Høiland-Jørgensen wrote:quoted
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 <redacted> Signed-off-by: Toke Høiland-Jørgensen <redacted>Guess the change looks good, but I’m waiting for some feedback from Adrian to see if this change makes sense.OK.quoted
Any luck reproducing the issue it’s supposed to fix?We got a report from the customer that originally reported it (who had their own reproducer) that this patch fixes their issue to the point where they can now delete ~2000 pods/node without triggering the unregister_netdevice warning at all (where before it triggered at around ~500 pod deletions). So that's encouraging :)That’s good news; just wanted to make sure we are not chasing a red herring :) Acked-by: Eelco Chaudron echaudro@redhat.com@Eelco: your SoB above is lacking the required <> around the email address. I'm fixing that while applying the patch, but please take care of it in the next reviews.
Thanks Paolo, no idea what happened here :(
Thanks, Paolo