From: Ilya Maximets <i.maximets@ovn.org>
To: netdev@vger.kernel.org
Cc: Aaron Conole <aconole@redhat.com>,
Eelco Chaudron <echaudro@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>, Shuah Khan <shuah@kernel.org>,
Yuan Tan <tanyuan98@outlook.com>, Yang Yang <n05ec@lzu.edu.cn>,
dev@openvswitch.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org,
Ilya Maximets <i.maximets@ovn.org>
Subject: [PATCH net v2 0/2] openvswitch: fix self-deadlock on release of tunnel vports
Date: Fri, 1 May 2026 01:38:36 +0200 [thread overview]
Message-ID: <20260430233848.440994-1-i.maximets@ovn.org> (raw)
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.
Version 2:
- Added Ack from Eelco to the first patch (not to the second as it
changed a little).
- Removed now unused import socket in the dpctl.py [pylint/ruff].
- Regarding comments from both Sashiko instances on the selftest patch:
* The background process is not waited for / not killed.
If it hangs it will not be killable anyway, so it's not a problem.
* The 'gre' choice for dpctl.py --ptype is not fully handled for --lwt.
While this is not needed for this patch, I agree that it's not
fully consistent. Added the proper handling in the TUNNEL_DEFAULTS
loop in this version.
* Python version concern for argparse.BooleanOptionalAction.
Python 3.9 is the oldest supported version and it has it, so it's
not an issue. Creating extra detection will only complicate the
script with no real benefits.
Version 1:
https://lore.kernel.org/netdev/20260429151756.4157670-1-i.maximets@ovn.org/
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 | 19 +++++++---
3 files changed, 55 insertions(+), 7 deletions(-)
--
2.53.0
next reply other threads:[~2026-04-30 23:38 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-30 23:38 Ilya Maximets [this message]
2026-04-30 23:38 ` [PATCH net v2 1/2] openvswitch: vport: fix self-deadlock on release of tunnel ports Ilya Maximets
2026-05-04 15:57 ` Aaron Conole
2026-04-30 23:38 ` [PATCH net v2 2/2] selftests: openvswitch: add tests for tunnel vport refcounting Ilya Maximets
2026-05-01 8:56 ` Eelco Chaudron
2026-05-04 15:57 ` Aaron Conole
2026-05-05 13:25 ` Paolo Abeni
2026-05-05 13:28 ` Ilya Maximets
2026-05-04 11:43 ` [PATCH net v2 0/2] openvswitch: fix self-deadlock on release of tunnel vports Ilya Maximets
2026-05-04 20:24 ` Aaron Conole
2026-05-05 13:30 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260430233848.440994-1-i.maximets@ovn.org \
--to=i.maximets@ovn.org \
--cc=aconole@redhat.com \
--cc=davem@davemloft.net \
--cc=dev@openvswitch.org \
--cc=echaudro@redhat.com \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=n05ec@lzu.edu.cn \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=shuah@kernel.org \
--cc=tanyuan98@outlook.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox