[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <52a3a959-ff39-8d97-4d68-937dbcb2e5a7@redhat.com>
Date: Wed, 4 Jan 2017 11:05:48 +0800
From: Jason Wang <jasowang@...hat.com>
To: John Fastabend <john.fastabend@...il.com>, mst@...hat.com,
virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: john.r.fastabend@...el.com
Subject: Re: [PATCH net 9/9] virtio-net: XDP support for small buffers
On 2017年01月04日 00:40, John Fastabend wrote:
> On 17-01-02 10:16 PM, Jason Wang wrote:
>>
>> On 2017年01月03日 06:43, John Fastabend wrote:
>>> On 16-12-23 06:37 AM, Jason Wang wrote:
>>>> Commit f600b6905015 ("virtio_net: Add XDP support") leaves the case of
>>>> small receive buffer untouched. This will confuse the user who want to
>>>> set XDP but use small buffers. Other than forbid XDP in small buffer
>>>> mode, let's make it work. XDP then can only work at skb->data since
>>>> virtio-net create skbs during refill, this is sub optimal which could
>>>> be optimized in the future.
>>>>
>>>> Cc: John Fastabend <john.r.fastabend@...el.com>
>>>> Signed-off-by: Jason Wang <jasowang@...hat.com>
>>>> ---
>>>> drivers/net/virtio_net.c | 112 ++++++++++++++++++++++++++++++++++++-----------
>>>> 1 file changed, 87 insertions(+), 25 deletions(-)
>>>>
>>> Hi Jason,
>>>
>>> I was doing some more testing on this what do you think about doing this
>>> so that free_unused_bufs() handles the buffer free with dev_kfree_skb()
>>> instead of put_page in small receive mode. Seems more correct to me.
>>>
>>>
>>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>>> index 783e842..27ff76c 100644
>>> --- a/drivers/net/virtio_net.c
>>> +++ b/drivers/net/virtio_net.c
>>> @@ -1898,6 +1898,10 @@ static void free_receive_page_frags(struct virtnet_info
>>> *vi)
>>>
>>> static bool is_xdp_queue(struct virtnet_info *vi, int q)
>>> {
>>> + /* For small receive mode always use kfree_skb variants */
>>> + if (!vi->mergeable_rx_bufs)
>>> + return false;
>>> +
>>> if (q < (vi->curr_queue_pairs - vi->xdp_queue_pairs))
>>> return false;
>>> else if (q < vi->curr_queue_pairs)
>>>
>>>
>>> patch is untested just spotted doing code review.
>>>
>>> Thanks,
>>> John
>> We probably need a better name for this function.
>>
>> Acked-by: Jason Wang <jasowang@...hat.com>
>>
> How about is_xdp_raw_buffer_queue()?
>
> I'll submit a proper patch today.
Sounds good, thanks.
Powered by blists - more mailing lists