[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cc4d09e8-d11a-4188-9f80-3ac7bb6e89e9@redhat.com>
Date: Wed, 9 Jul 2025 11:02:17 +0200
From: Paolo Abeni <pabeni@...hat.com>
To: "Michael S. Tsirkin" <mst@...hat.com>, Jakub Kicinski <kuba@...nel.org>
Cc: netdev@...r.kernel.org, Willem de Bruijn
<willemdebruijn.kernel@...il.com>, Jason Wang <jasowang@...hat.com>,
Andrew Lunn <andrew+netdev@...n.ch>, "David S. Miller"
<davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Xuan Zhuo <xuanzhuo@...ux.alibaba.com>, Eugenio Pérez
<eperezma@...hat.com>, Yuri Benditovich <yuri.benditovich@...nix.com>,
Akihiko Odaki <akihiko.odaki@...nix.com>, Jonathan Corbet <corbet@....net>,
kvm@...r.kernel.org, linux-doc@...r.kernel.org
Subject: Re: [PATCH v7 net-next 0/9] virtio: introduce GSO over UDP tunnel
On 7/8/25 8:23 PM, Michael S. Tsirkin wrote:
> On Tue, Jul 08, 2025 at 06:43:17PM +0200, Paolo Abeni wrote:
>> On 7/8/25 6:00 PM, Michael S. Tsirkin wrote:
>>> On Tue, Jul 08, 2025 at 08:24:04AM -0700, Jakub Kicinski wrote:
>>>> On Tue, 8 Jul 2025 11:01:30 -0400 Michael S. Tsirkin wrote:
>>>>>> git@...hub.com:pabeni/linux-devel.git virtio_udp_tunnel_07_07_2025
>>>>>>
>>>>>> The first 5 patches in this series, that is, the virtio features
>>>>>> extension bits are also available at [2]:
>>>>>>
>>>>>> git@...hub.com:pabeni/linux-devel.git virtio_features_extension_07_07_2025
>>>>>>
>>>>>> Ideally the virtio features extension bit should go via the virtio tree
>>>>>> and the virtio_net/tun patches via the net-next tree. The latter have
>>>>>> a dependency in the first and will cause conflicts if merged via the
>>>>>> virtio tree, both when applied and at merge window time - inside Linus
>>>>>> tree.
>>>>>>
>>>>>> To avoid such conflicts and duplicate commits I think the net-next
>>>>>> could pull from [1], while the virtio tree could pull from [2].
>>>>>
>>>>> Or I could just merge all of this in my tree, if that's ok
>>>>> with others?
>>>>
>>>> No strong preference here. My first choice would be a branch based
>>>> on v6.16-rc5 so we can all pull in and resolve the conflicts that
>>>> already exist. But I haven't looked how bad the conflicts would
>>>> be for virtio if we did that. On net-next side they look manageable.
>>>
>>> OK, let's do it the way Paolo wants then.
>>
>> I actually messed a bit with my proposal, as I forgot I need to use a
>> common ancestor for the branches I shared.
>>
>> git@...hub.com:pabeni/linux-devel.git virtio_features_extension_07_07_2025
>>
>> is based on current net-next and pulling from such tag will take a lot
>> of unwanted stuff into the vhost tree.
>>
>> @Michael: AFAICS the current vhost devel tree is based on top of
>> v6.15-rc7, am I correct?
>
> Yes I'll rebase it soon.
I see you rebase on v6.16-rc5, thanks!
The whole series in now also available based on top of v6.16-rc5 here:
git@...hub.com:pabeni/linux-devel.git virtio_udp_tunnel_08_07_2025
I'm not sending the above to netdev, as it will likely foul the bot and
the CI. Please LMK if you prefer otherwise.
With default config/strategy I can pull the above on top of the vhost
tree with no conflicts and auto merging.
Pulling on net-next will see a conflict in patch 8/9, file tun.c inside
tun_xdp_one(), and the resolution is as follow, which will yield the
code posted here:
https://lore.kernel.org/netdev/f076f2e1fa91041b15cf46efadc6708924afe8e0.1751874094.git.pabeni@redhat.com/
---
diff --cc drivers/net/tun.c
index 447c37959504,abc91f28dac4..49bcd12a4ac8
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@@ -2356,12 -2378,15 +2378,14 @@@ static int tun_xdp_one(struct tun_struc
struct tun_page *tpage)
{
unsigned int datasize = xdp->data_end - xdp->data;
- struct tun_xdp_hdr *hdr = xdp->data_hard_start;
+ struct virtio_net_hdr *gso = xdp->data_hard_start;
+ struct virtio_net_hdr_v1_hash_tunnel *tnl_hdr;
- struct virtio_net_hdr *gso = &hdr->gso;
struct bpf_prog *xdp_prog;
struct sk_buff *skb = NULL;
struct sk_buff_head *queue;
+ netdev_features_t features;
u32 rxhash = 0, act;
- int buflen = hdr->buflen;
+ int buflen = xdp->frame_sz;
int metasize = 0;
Powered by blists - more mailing lists