[PATCH] net/iavf: fix core dump when exiting testpmd

Zhang, Qi Z qi.z.zhang at intel.com
Tue Oct 31 09:15:36 CET 2023



> -----Original Message-----
> From: Kaiwen Deng <kaiwenx.deng at intel.com>
> Sent: Thursday, October 26, 2023 4:55 PM
> To: dev at dpdk.org
> Cc: Yang, Qiming <qiming.yang at intel.com>; Zhou, YidingX
> <yidingx.zhou at intel.com>; Deng, KaiwenX <kaiwenx.deng at intel.com>; Wu,
> Jingjing <jingjing.wu at intel.com>; Xing, Beilei <beilei.xing at intel.com>; Lu,
> Wenzhuo <wenzhuo.lu at intel.com>; Richardson, Bruce
> <bruce.richardson at intel.com>
> Subject: [PATCH] net/iavf: fix core dump when exiting testpmd
> 
> release null mbuf results coredump.
> This commit adding mbuf check before releasing.
> 
> Fixes: 12016895fcf3 ("net/iavf: fix buffer leak on Tx queue stop")
> 
> Signed-off-by: Kaiwen Deng <kaiwenx.deng at intel.com>
> ---
>  drivers/net/iavf/iavf_rxtx_vec_common.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/iavf/iavf_rxtx_vec_common.h
> b/drivers/net/iavf/iavf_rxtx_vec_common.h
> index e18cdc3f11..f50a500536 100644
> --- a/drivers/net/iavf/iavf_rxtx_vec_common.h
> +++ b/drivers/net/iavf/iavf_rxtx_vec_common.h
> @@ -187,8 +187,11 @@ _iavf_tx_queue_release_mbufs_vec(struct
> iavf_tx_queue *txq)
> 
>  	i = txq->next_dd - txq->rs_thresh + 1;
>  	while (i != txq->tx_tail) {
> -		rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
> -		txq->sw_ring[i].mbuf = NULL;
> +		if (txq->sw_ring[i].mbuf) {
> +			rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
> +			txq->sw_ring[i].mbuf = NULL;
> +		}

Could you explain how to reproduce this issue in the commit log.

Looks like it is to fix the scenario that queue stop and start again and some mbuf will be double free at some time?

> +
>  		if (++i == txq->nb_tx_desc)
>  			i = 0;
>  	}
> --
> 2.34.1



More information about the dev mailing list