[dpdk-dev] [PATCH 1/4] net/virtio: fix memory leak in in-order Rx

Tiwei Bie tiwei.bie at intel.com
Thu Jun 20 03:56:28 CEST 2019


On Wed, Jun 19, 2019 at 02:34:40PM +0200, Maxime Coquelin wrote:
> On 6/18/19 9:41 AM, Tiwei Bie wrote:
> > When there is no enough segments for a packet in in-order
> > mergeable Rx path, we should free the whole mbuf chain instead
> > of just the last segment.
> 
> I would write instead:
> 
> "
> we should free the whole mbuf chain instead of just recycling the last
> segment.
> "
> 
> Because what was done before the patch it to refill the VQ with the last
> segment. With your patch, the full chain is freed, then the refill is
> done afterwards.
> 
> Do you agree?

Yeah, I totally agree :)

Thanks!
Tiwei

> 
> Other than that:
> Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> 
> Thanks!
> Maxime
> 
> > 
> > Fixes: e5f456a98d3c ("net/virtio: support in-order Rx and Tx")
> > Cc: stable at dpdk.org
> > 
> > Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
> > ---
> >   drivers/net/virtio/virtio_rxtx.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
> > index 1f1178467..bdb3a2f18 100644
> > --- a/drivers/net/virtio/virtio_rxtx.c
> > +++ b/drivers/net/virtio/virtio_rxtx.c
> > @@ -1555,7 +1555,7 @@ virtio_recv_pkts_inorder(void *rx_queue,
> >   		} else {
> >   			PMD_RX_LOG(ERR,
> >   					"No enough segments for packet.");
> > -			virtio_discard_rxbuf_inorder(vq, prev);
> > +			rte_pktmbuf_free(rx_pkts[nb_rx]);
> >   			rxvq->stats.errors++;
> >   			break;
> >   		}
> > 


More information about the dev mailing list