Message ID | 20230116202708.276604-1-parav@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | eb1d929f1551f226f59e38465c542df9071166d6 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] virtio_net: Reuse buffer free function | expand |
On Mon, Jan 16, 2023 at 10:27:08PM +0200, Parav Pandit wrote: > virtnet_rq_free_unused_buf() helper function to free the buffer > already exists. Avoid code duplication by reusing existing function. > > Reviewed-by: Alexander Duyck <alexanderduyck@fb.com> > Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > Signed-off-by: Parav Pandit <parav@nvidia.com> > --- > drivers/net/virtio_net.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 7723b2a49d8e..31d037df514f 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, > if (unlikely(len < vi->hdr_len + ETH_HLEN)) { > pr_debug("%s: short packet %i\n", dev->name, len); > dev->stats.rx_length_errors++; > - if (vi->mergeable_rx_bufs) { > - put_page(virt_to_head_page(buf)); > - } else if (vi->big_packets) { > - give_pages(rq, buf); > - } else { > - put_page(virt_to_head_page(buf)); > - } > + virtnet_rq_free_unused_buf(rq->vq, buf); > return; > } Sure. Acked-by: Michael S. Tsirkin <mst@redhat.com> while we are at it how about a patch moving virtnet_rq_free_unused_buf and virtnet_sq_free_unused_buf so we don't need forward declarations? E.g. a good place for virtnet_sq_free_unused_buf is likely after ptr_to_xdp group of functions. For virtnet_rq_free_unused_buf - after give_pages/get_a_page. > > -- > 2.26.2
> From: Michael S. Tsirkin <mst@redhat.com> > Sent: Monday, January 16, 2023 5:13 PM > > On Mon, Jan 16, 2023 at 10:27:08PM +0200, Parav Pandit wrote: > > virtnet_rq_free_unused_buf() helper function to free the buffer > > already exists. Avoid code duplication by reusing existing function. > > > > Reviewed-by: Alexander Duyck <alexanderduyck@fb.com> > > Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > > Signed-off-by: Parav Pandit <parav@nvidia.com> > > --- > > drivers/net/virtio_net.c | 8 +------- > > 1 file changed, 1 insertion(+), 7 deletions(-) > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index > > 7723b2a49d8e..31d037df514f 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, > struct receive_queue *rq, > > if (unlikely(len < vi->hdr_len + ETH_HLEN)) { > > pr_debug("%s: short packet %i\n", dev->name, len); > > dev->stats.rx_length_errors++; > > - if (vi->mergeable_rx_bufs) { > > - put_page(virt_to_head_page(buf)); > > - } else if (vi->big_packets) { > > - give_pages(rq, buf); > > - } else { > > - put_page(virt_to_head_page(buf)); > > - } > > + virtnet_rq_free_unused_buf(rq->vq, buf); > > return; > > } > > Sure. > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > > while we are at it how about a patch moving virtnet_rq_free_unused_buf and > virtnet_sq_free_unused_buf so we don't need forward declarations? > Yes. its in my list. Will do after this patch. I am also going to add the comment for the history about not doing ZLEN around this area. > E.g. a good place for virtnet_sq_free_unused_buf is likely after ptr_to_xdp > group of functions. > > For virtnet_rq_free_unused_buf - after give_pages/get_a_page. > > > > > -- > > 2.26.2
On Tue, Jan 17, 2023 at 4:27 AM Parav Pandit <parav@nvidia.com> wrote: > > virtnet_rq_free_unused_buf() helper function to free the buffer > already exists. Avoid code duplication by reusing existing function. > > Reviewed-by: Alexander Duyck <alexanderduyck@fb.com> > Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > Signed-off-by: Parav Pandit <parav@nvidia.com> Acked-by: Jason Wang <jasowang@redhat.com> Thanks > --- > drivers/net/virtio_net.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 7723b2a49d8e..31d037df514f 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, > if (unlikely(len < vi->hdr_len + ETH_HLEN)) { > pr_debug("%s: short packet %i\n", dev->name, len); > dev->stats.rx_length_errors++; > - if (vi->mergeable_rx_bufs) { > - put_page(virt_to_head_page(buf)); > - } else if (vi->big_packets) { > - give_pages(rq, buf); > - } else { > - put_page(virt_to_head_page(buf)); > - } > + virtnet_rq_free_unused_buf(rq->vq, buf); > return; > } > > -- > 2.26.2 >
Hello: This patch was applied to netdev/net-next.git (master) by David S. Miller <davem@davemloft.net>: On Mon, 16 Jan 2023 22:27:08 +0200 you wrote: > virtnet_rq_free_unused_buf() helper function to free the buffer > already exists. Avoid code duplication by reusing existing function. > > Reviewed-by: Alexander Duyck <alexanderduyck@fb.com> > Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > Signed-off-by: Parav Pandit <parav@nvidia.com> > > [...] Here is the summary with links: - [net-next,v2] virtio_net: Reuse buffer free function https://git.kernel.org/netdev/net-next/c/eb1d929f1551 You are awesome, thank you!
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 7723b2a49d8e..31d037df514f 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1251,13 +1251,7 @@ static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, if (unlikely(len < vi->hdr_len + ETH_HLEN)) { pr_debug("%s: short packet %i\n", dev->name, len); dev->stats.rx_length_errors++; - if (vi->mergeable_rx_bufs) { - put_page(virt_to_head_page(buf)); - } else if (vi->big_packets) { - give_pages(rq, buf); - } else { - put_page(virt_to_head_page(buf)); - } + virtnet_rq_free_unused_buf(rq->vq, buf); return; }