[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fb7b9914-33fb-b752-b421-d30349b44dbc@linux.alibaba.com>
Date: Wed, 28 Dec 2022 16:24:44 +0800
From: Heng Qi <hengqi@...ux.alibaba.com>
To: Jason Wang <jasowang@...hat.com>, netdev@...r.kernel.org,
bpf@...r.kernel.org
Cc: "Michael S . Tsirkin" <mst@...hat.com>,
Paolo Abeni <pabeni@...hat.com>,
Jakub Kicinski <kuba@...nel.org>,
John Fastabend <john.fastabend@...il.com>,
"David S . Miller" <davem@...emloft.net>,
Daniel Borkmann <daniel@...earbox.net>,
Alexei Starovoitov <ast@...nel.org>,
Eric Dumazet <edumazet@...gle.com>,
Xuan Zhuo <xuanzhuo@...ux.alibaba.com>
Subject: Re: [PATCH v2 1/9] virtio_net: disable the hole mechanism for xdp
在 2022/12/28 下午2:28, Jason Wang 写道:
>
> 在 2022/12/27 15:32, Heng Qi 写道:
>>
>>
>> 在 2022/12/27 下午2:30, Jason Wang 写道:
>>>
>>> 在 2022/12/20 22:14, Heng Qi 写道:
>>>> XDP core assumes that the frame_size of xdp_buff and the length of
>>>> the frag are PAGE_SIZE. The hole may cause the processing of xdp to
>>>> fail, so we disable the hole mechanism when xdp is set.
>>>>
>>>> Signed-off-by: Heng Qi <hengqi@...ux.alibaba.com>
>>>> Reviewed-by: Xuan Zhuo <xuanzhuo@...ux.alibaba.com>
>>>> ---
>>>> drivers/net/virtio_net.c | 5 ++++-
>>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>>>> index 9cce7dec7366..443aa7b8f0ad 100644
>>>> --- a/drivers/net/virtio_net.c
>>>> +++ b/drivers/net/virtio_net.c
>>>> @@ -1419,8 +1419,11 @@ static int add_recvbuf_mergeable(struct
>>>> virtnet_info *vi,
>>>> /* To avoid internal fragmentation, if there is very
>>>> likely not
>>>> * enough space for another buffer, add the remaining
>>>> space to
>>>> * the current buffer.
>>>> + * XDP core assumes that frame_size of xdp_buff and the
>>>> length
>>>> + * of the frag are PAGE_SIZE, so we disable the hole
>>>> mechanism.
>>>> */
>>>> - len += hole;
>>>> + if (!headroom)
>>>> + len += hole;
>>>
>>>
>>> Is this only a requirement of multi-buffer XDP? If not, it need to
>>> be backported to stable.
>>
>> It applies to single buffer xdp and multi-buffer xdp, but even if
>> single buffer xdp has a hole
>> mechanism, there will be no problem (limiting mtu and turning off
>> GUEST GSO), so there is
>> no need to backport it.
>
>
> Let's add this in the changelog.
Ok, thanks for your energy.
>
> With that,
>
> Acked-by: Jason Wang <jasowang@...hat.com>
>
> Thanks
>
>
>>
>> Thanks.
>>
>>>
>>> Thanks
>>>
>>>
>>>> alloc_frag->offset += hole;
>>>> }
>>
Powered by blists - more mailing lists