[PATCH net 0/2] openvswitch: fix self-deadlock on release of tunnel vports

Ilya Maximets posted 2 patches 1 month, 2 weeks ago
There is a newer version of this series
net/openvswitch/vport-netdev.c                |  6 ++-
.../selftests/net/openvswitch/openvswitch.sh  | 37 +++++++++++++++++++
.../selftests/net/openvswitch/ovs-dpctl.py    | 10 ++---
3 files changed, 47 insertions(+), 6 deletions(-)
[PATCH net 0/2] openvswitch: fix self-deadlock on release of tunnel vports
Posted by Ilya Maximets 1 month, 2 weeks ago
Two patches - the fix for the actual bug and the selftest that reproduces it.

I missed the self-deadlock in the original patch that introduced the issue,
because testing required code modification in the ovs-vswitchd to force it to
use legacy tunnel ports.  I thought I made the change correctly, but apparently
something went wrong and the tests were run with the standard LWT infra instead.
The selftest added in this patch set will at least prevent this kind of mistakes
in the future.

I mentioned, however, that these tunnel vports are legacy and not actually used
by ovs-vswitchd.  RTM_NEWLINK + COLLECT_METADATA is used in conjunction with the
standard OVS_VPORT_TYPE_NETDEV instead since 2017.  The code to use the legacy
tunnels still exists in ovs-vswitchd however, but only as a fallback for older
kernels and we're planning to remove it in the next release.  I'll be sending an
RFC to remove support for these legacy tunnel types from the kernel, as they
serve no real purpose today and only increase the uAPI surface for CVEs, but
we need to fix the known bugs for stable versions.

Ilya Maximets (2):
  openvswitch: vport: fix self-deadlock on release of tunnel ports
  selftests: openvswitch: add tests for tunnel vport refcounting

 net/openvswitch/vport-netdev.c                |  6 ++-
 .../selftests/net/openvswitch/openvswitch.sh  | 37 +++++++++++++++++++
 .../selftests/net/openvswitch/ovs-dpctl.py    | 10 ++---
 3 files changed, 47 insertions(+), 6 deletions(-)

-- 
2.53.0
Re: [PATCH net 0/2] openvswitch: fix self-deadlock on release of tunnel vports
Posted by Eelco Chaudron 1 month, 2 weeks ago

On 29 Apr 2026, at 17:16, Ilya Maximets wrote:

> Two patches - the fix for the actual bug and the selftest that reproduces it.
>
> I missed the self-deadlock in the original patch that introduced the issue,
> because testing required code modification in the ovs-vswitchd to force it to
> use legacy tunnel ports.  I thought I made the change correctly, but apparently
> something went wrong and the tests were run with the standard LWT infra instead.
> The selftest added in this patch set will at least prevent this kind of mistakes
> in the future.
>
> I mentioned, however, that these tunnel vports are legacy and not actually used
> by ovs-vswitchd.  RTM_NEWLINK + COLLECT_METADATA is used in conjunction with the
> standard OVS_VPORT_TYPE_NETDEV instead since 2017.  The code to use the legacy
> tunnels still exists in ovs-vswitchd however, but only as a fallback for older
> kernels and we're planning to remove it in the next release.  I'll be sending an
> RFC to remove support for these legacy tunnel types from the kernel, as they
> serve no real purpose today and only increase the uAPI surface for CVEs, but
> we need to fix the known bugs for stable versions.

Thanks, Ilya, for working on this patch! It looks good to me, assuming you
remove the unused socket library in v2.

For the series:

Acked-by: Eelco Chaudron <echaudro@redhat.com>