[dpdk-dev] [PATCH] net/i40e: Improve i40evf buffer cleanup in tx vector mode

Roger B. Melton rmelton at cisco.com
Fri Oct 6 01:42:53 CEST 2017


Hi Everyone,

As soon as I submitted the patch, I realized I neglected to signoff.  
What's the recommended procedure, resubmit the original signed off, or 
bump to v1?

Thanks,
Roger


On 10/5/17 3:11 PM, Roger B Melton wrote:
> ---
>
> i40evf tx vector logic frees mbufs, but it does not remove the
> mbufs from software rings which leads to double frees.  This change
>   corrects that oversight.  We've validated this fix within our application.
>
>   drivers/net/i40e/i40e_rxtx_vec_common.h | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
> index 39a6da0..fdc6fce 100644
> --- a/drivers/net/i40e/i40e_rxtx_vec_common.h
> +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
> @@ -127,6 +127,7 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
>   	if (likely(m != NULL)) {
>   		free[0] = m;
>   		nb_free = 1;
> +		txep[0].mbuf = NULL;
>   		for (i = 1; i < n; i++) {
>   			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
>   			if (likely(m != NULL)) {
> @@ -139,14 +140,17 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
>   					free[0] = m;
>   					nb_free = 1;
>   				}
> +				txep[i].mbuf = NULL;
>   			}
>   		}
>   		rte_mempool_put_bulk(free[0]->pool, (void **)free, nb_free);
>   	} else {
> +		txep[0].mbuf = NULL;
>   		for (i = 1; i < n; i++) {
>   			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
>   			if (m != NULL)
>   				rte_mempool_put(m->pool, m);
> +			txep[i].mbuf = NULL;
>   		}
>   	}
>   




More information about the dev mailing list