DPDK patches and discussions
 help / color / mirror / Atom feed
* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-09  8:53 [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD Qi Zhang
@ 2017-10-09  1:47 ` Wu, Jingjing
  2017-10-09 12:44 ` Ananyev, Konstantin
  1 sibling, 0 replies; 10+ messages in thread
From: Wu, Jingjing @ 2017-10-09  1:47 UTC (permalink / raw)
  To: Zhang, Qi Z, Xing, Beilei; +Cc: dev, stable

Hi, qi

Is your patch duplicated with this http://www.dpdk.org/dev/patchwork/patch/29814/ ?

Thanks
Jingjing

> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Monday, October 9, 2017 4:54 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/i40e: fix unexpected mbuf free in vPMD
> 
> The patch reset tx queue sw_ring's mbuf to NULL after it is free in
> i40_tx_free_bufs, this prevent same mbuf be free again in
> i40e_dev_tx_queue_release. This fix follow the same implemenation of non-
> vPMD.
> 
> Fixes: b4669bb95038 ("i40e: add vector Tx")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
>  drivers/net/i40e/i40e_rxtx_vec_common.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h
> b/drivers/net/i40e/i40e_rxtx_vec_common.h
> index 39a6da0..ed51b4d 100644
> --- a/drivers/net/i40e/i40e_rxtx_vec_common.h
> +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
> @@ -124,11 +124,13 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
>  	  */
>  	txep = &txq->sw_ring[txq->tx_next_dd - (n - 1)];
>  	m = rte_pktmbuf_prefree_seg(txep[0].mbuf);
> +	txep[0].mbuf = NULL;
>  	if (likely(m != NULL)) {
>  		free[0] = m;
>  		nb_free = 1;
>  		for (i = 1; i < n; i++) {
>  			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
> +			txep[i].mbuf = NULL;
>  			if (likely(m != NULL)) {
>  				if (likely(m->pool == free[0]->pool)) {
>  					free[nb_free++] = m;
> @@ -145,6 +147,7 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
>  	} else {
>  		for (i = 1; i < n; i++) {
>  			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
> +			txep[i].mbuf = NULL;
>  			if (m != NULL)
>  				rte_mempool_put(m->pool, m);
>  		}
> --
> 2.9.5

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
@ 2017-10-09  8:53 Qi Zhang
  2017-10-09  1:47 ` Wu, Jingjing
  2017-10-09 12:44 ` Ananyev, Konstantin
  0 siblings, 2 replies; 10+ messages in thread
From: Qi Zhang @ 2017-10-09  8:53 UTC (permalink / raw)
  To: jingjing.wu, beilei.xing; +Cc: dev, Qi Zhang, stable

The patch reset tx queue sw_ring's mbuf to NULL after it is free in
i40_tx_free_bufs, this prevent same mbuf be free again in
i40e_dev_tx_queue_release. This fix follow the same implemenation of
non-vPMD.

Fixes: b4669bb95038 ("i40e: add vector Tx")
Cc: stable@dpdk.org

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx_vec_common.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
index 39a6da0..ed51b4d 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
@@ -124,11 +124,13 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
 	  */
 	txep = &txq->sw_ring[txq->tx_next_dd - (n - 1)];
 	m = rte_pktmbuf_prefree_seg(txep[0].mbuf);
+	txep[0].mbuf = NULL;
 	if (likely(m != NULL)) {
 		free[0] = m;
 		nb_free = 1;
 		for (i = 1; i < n; i++) {
 			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
+			txep[i].mbuf = NULL;
 			if (likely(m != NULL)) {
 				if (likely(m->pool == free[0]->pool)) {
 					free[nb_free++] = m;
@@ -145,6 +147,7 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
 	} else {
 		for (i = 1; i < n; i++) {
 			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
+			txep[i].mbuf = NULL;
 			if (m != NULL)
 				rte_mempool_put(m->pool, m);
 		}
-- 
2.9.5

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-09  8:53 [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD Qi Zhang
  2017-10-09  1:47 ` Wu, Jingjing
@ 2017-10-09 12:44 ` Ananyev, Konstantin
  2017-10-09 13:20   ` Bruce Richardson
  2017-10-10  1:10   ` Zhang, Qi Z
  1 sibling, 2 replies; 10+ messages in thread
From: Ananyev, Konstantin @ 2017-10-09 12:44 UTC (permalink / raw)
  To: Zhang, Qi Z, Wu, Jingjing, Xing, Beilei; +Cc: dev, Zhang, Qi Z, stable

Hi Zhang,

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qi Zhang
> Sent: Monday, October 9, 2017 9:54 AM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
> 
> The patch reset tx queue sw_ring's mbuf to NULL after it is free in
> i40_tx_free_bufs, this prevent same mbuf be free again in
> i40e_dev_tx_queue_release. This fix follow the same implemenation of
> non-vPMD.

Wonder why we can't change i40e_dev_tx_queue_release() instead, 
so it will only go through the TXDs that were really armed?
Let say from txq->tx_next_dd - tx_rs_thresh - 1 till txq->tx_tail?
Let say _ixgbe_tx_queue_release_mbufs_vec() works that way.
Then we probably can keep our runtime code intact.
Konstantin

> 
> Fixes: b4669bb95038 ("i40e: add vector Tx")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
>  drivers/net/i40e/i40e_rxtx_vec_common.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h
> index 39a6da0..ed51b4d 100644
> --- a/drivers/net/i40e/i40e_rxtx_vec_common.h
> +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
> @@ -124,11 +124,13 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
>  	  */
>  	txep = &txq->sw_ring[txq->tx_next_dd - (n - 1)];
>  	m = rte_pktmbuf_prefree_seg(txep[0].mbuf);
> +	txep[0].mbuf = NULL;
>  	if (likely(m != NULL)) {
>  		free[0] = m;
>  		nb_free = 1;
>  		for (i = 1; i < n; i++) {
>  			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
> +			txep[i].mbuf = NULL;
>  			if (likely(m != NULL)) {
>  				if (likely(m->pool == free[0]->pool)) {
>  					free[nb_free++] = m;
> @@ -145,6 +147,7 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
>  	} else {
>  		for (i = 1; i < n; i++) {
>  			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
> +			txep[i].mbuf = NULL;
>  			if (m != NULL)
>  				rte_mempool_put(m->pool, m);
>  		}
> --
> 2.9.5

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-09 12:44 ` Ananyev, Konstantin
@ 2017-10-09 13:20   ` Bruce Richardson
  2017-10-10  1:10   ` Zhang, Qi Z
  1 sibling, 0 replies; 10+ messages in thread
From: Bruce Richardson @ 2017-10-09 13:20 UTC (permalink / raw)
  To: Ananyev, Konstantin; +Cc: Zhang, Qi Z, Wu, Jingjing, Xing, Beilei, dev, stable

On Mon, Oct 09, 2017 at 12:44:25PM +0000, Ananyev, Konstantin wrote:
> Hi Zhang,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qi Zhang
> > Sent: Monday, October 9, 2017 9:54 AM
> > To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> > Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; stable@dpdk.org
> > Subject: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
> > 
> > The patch reset tx queue sw_ring's mbuf to NULL after it is free in
> > i40_tx_free_bufs, this prevent same mbuf be free again in
> > i40e_dev_tx_queue_release. This fix follow the same implemenation of
> > non-vPMD.
> 
> Wonder why we can't change i40e_dev_tx_queue_release() instead, 
> so it will only go through the TXDs that were really armed?
> Let say from txq->tx_next_dd - tx_rs_thresh - 1 till txq->tx_tail?
> Let say _ixgbe_tx_queue_release_mbufs_vec() works that way.
> Then we probably can keep our runtime code intact.
> Konstantin
> 
+1 to this. We should avoid adding writes to the TX path. Instead we
should ensure that other routines properly track the buffers to be freed
using the appropriate indexes.

/Bruce

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-09 12:44 ` Ananyev, Konstantin
  2017-10-09 13:20   ` Bruce Richardson
@ 2017-10-10  1:10   ` Zhang, Qi Z
  1 sibling, 0 replies; 10+ messages in thread
From: Zhang, Qi Z @ 2017-10-10  1:10 UTC (permalink / raw)
  To: Ananyev, Konstantin, Wu, Jingjing, Xing, Beilei; +Cc: dev, stable

Hi Konstantin:

> -----Original Message-----
> From: Ananyev, Konstantin
> Sent: Monday, October 9, 2017 8:44 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>;
> Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
> 
> Hi Zhang,
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qi Zhang
> > Sent: Monday, October 9, 2017 9:54 AM
> > To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei
> > <beilei.xing@intel.com>
> > Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; stable@dpdk.org
> > Subject: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
> >
> > The patch reset tx queue sw_ring's mbuf to NULL after it is free in
> > i40_tx_free_bufs, this prevent same mbuf be free again in
> > i40e_dev_tx_queue_release. This fix follow the same implemenation of
> > non-vPMD.
> 
> Wonder why we can't change i40e_dev_tx_queue_release() instead, so it will
> only go through the TXDs that were really armed?
Yes we can, I've thought about this before the patch, but after I measure the performance impact, I saw less than 0.6% downgrade for single core performance.
So I think maybe a simple fix could be good enough and low risk and an improvement can be delivered later after carefully validate.

> Let say from txq->tx_next_dd - tx_rs_thresh - 1 till txq->tx_tail?
> Let say _ixgbe_tx_queue_release_mbufs_vec() works that way.

Yes, That's the same way I figured out, thanks for giving the detail instruction that confirm my thought :)
Now, I think my v2 can upgrade to this directly.

Thanks
Qi

> Then we probably can keep our runtime code intact.

> Konstantin
> 
> >
> > Fixes: b4669bb95038 ("i40e: add vector Tx")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> > ---
> >  drivers/net/i40e/i40e_rxtx_vec_common.h | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h
> > b/drivers/net/i40e/i40e_rxtx_vec_common.h
> > index 39a6da0..ed51b4d 100644
> > --- a/drivers/net/i40e/i40e_rxtx_vec_common.h
> > +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h
> > @@ -124,11 +124,13 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
> >  	  */
> >  	txep = &txq->sw_ring[txq->tx_next_dd - (n - 1)];
> >  	m = rte_pktmbuf_prefree_seg(txep[0].mbuf);
> > +	txep[0].mbuf = NULL;
> >  	if (likely(m != NULL)) {
> >  		free[0] = m;
> >  		nb_free = 1;
> >  		for (i = 1; i < n; i++) {
> >  			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
> > +			txep[i].mbuf = NULL;
> >  			if (likely(m != NULL)) {
> >  				if (likely(m->pool == free[0]->pool)) {
> >  					free[nb_free++] = m;
> > @@ -145,6 +147,7 @@ i40e_tx_free_bufs(struct i40e_tx_queue *txq)
> >  	} else {
> >  		for (i = 1; i < n; i++) {
> >  			m = rte_pktmbuf_prefree_seg(txep[i].mbuf);
> > +			txep[i].mbuf = NULL;
> >  			if (m != NULL)
> >  				rte_mempool_put(m->pool, m);
> >  		}
> > --
> > 2.9.5

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
@ 2017-10-10 13:22 Qi Zhang
  2017-10-10  8:48 ` Bruce Richardson
  0 siblings, 1 reply; 10+ messages in thread
From: Qi Zhang @ 2017-10-10 13:22 UTC (permalink / raw)
  To: konstantin.ananyev, jingjing.wu, beilei.xing; +Cc: dev, Qi Zhang, stable

vPMD tx does not set sw_ring's mbuf to NULL after free it.
So to prevent same mbuf be free again, we need more carefully
check in i40e_tx_queue_release_mbufs.

Fixes: b4669bb95038 ("i40e: add vector Tx")
Cc: stable@dpdk.org

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
v2:
- fix at i40e_tx_queue_release_mbufs so no performance impact.

 drivers/net/i40e/i40e_rxtx.c | 26 ++++++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 3a8d32c..f21c1c5 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -2305,18 +2305,40 @@ i40e_reset_rx_queue(struct i40e_rx_queue *rxq)
 void
 i40e_tx_queue_release_mbufs(struct i40e_tx_queue *txq)
 {
+	struct rte_eth_dev *dev;
 	uint16_t i;
 
+	dev = &rte_eth_devices[txq->port_id];
+
 	if (!txq || !txq->sw_ring) {
 		PMD_DRV_LOG(DEBUG, "Pointer to rxq or sw_ring is NULL");
 		return;
 	}
 
-	for (i = 0; i < txq->nb_tx_desc; i++) {
-		if (txq->sw_ring[i].mbuf) {
+	/**
+	 *  vPMD tx will not set sw_ring's mbuf to NULL after free,
+	 *  so need to free remains more carefully.
+	 */
+	if (dev->tx_pkt_burst == i40e_xmit_pkts_vec) {
+		i = txq->tx_next_dd - txq->tx_rs_thresh + 1;
+		if (txq->tx_tail < i) {
+			for (; i < txq->nb_tx_desc; i++) {
+				rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
+				txq->sw_ring[i].mbuf = NULL;
+			}
+			i = 0;
+		}
+		for (; i < txq->tx_tail; i++) {
 			rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
 			txq->sw_ring[i].mbuf = NULL;
 		}
+	} else {
+		for (i = 0; i < txq->nb_tx_desc; i++) {
+			if (txq->sw_ring[i].mbuf) {
+				rte_pktmbuf_free_seg(txq->sw_ring[i].mbuf);
+				txq->sw_ring[i].mbuf = NULL;
+			}
+		}
 	}
 }
 
-- 
2.9.5

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-10 11:39     ` Bruce Richardson
@ 2017-10-10 11:47       ` Roger B. Melton
  0 siblings, 0 replies; 10+ messages in thread
From: Roger B. Melton @ 2017-10-10 11:47 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: Qi Zhang, konstantin.ananyev, jingjing.wu, beilei.xing, dev, stable

On 10/10/17 7:39 AM, Bruce Richardson wrote:
> On Tue, Oct 10, 2017 at 07:05:33AM -0400, Roger B. Melton wrote:
>> Hi Bruce,
>>
>> I can.  It will take a day or 2 to get the results.
>>
>> Regards,
>> Roger
>>
> Thanks. Keep us posted. We want to ensure we have the best fix possible
> for the issue in this release.

Thanks for finding a better solution ;-).  I'll let you know the results 
when I have them, just wanted you to know it may take a couple of days 
to turn around.

-Roger

>
> /Bruce
>
>> On 10/10/17 4:48 AM, Bruce Richardson wrote:
>>> +Roger Melton
>>>
>>> On Tue, Oct 10, 2017 at 09:22:05AM -0400, Qi Zhang wrote:
>>>> vPMD tx does not set sw_ring's mbuf to NULL after free it.
>>>> So to prevent same mbuf be free again, we need more carefully
>>>> check in i40e_tx_queue_release_mbufs.
>>>>
>>>> Fixes: b4669bb95038 ("i40e: add vector Tx")
>>>> Cc: stable@dpdk.org
>>>>
>>>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>>>> ---
>>>> v2:
>>>> - fix at i40e_tx_queue_release_mbufs so no performance impact.
>>>>
>>> This patch also supercedes this one, http://dpdk.org/dev/patchwork/patch/29814/
>>> right?
>>> Roger, can you please confirm that this alternative fix works in your
>>> testing and that your patch is no longer necessary too.
>>>
>>> Thanks,
>>> /Bruce
>>>
>>> .
>>>
> .
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-10 11:05   ` Roger B. Melton
@ 2017-10-10 11:39     ` Bruce Richardson
  2017-10-10 11:47       ` Roger B. Melton
  0 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2017-10-10 11:39 UTC (permalink / raw)
  To: Roger B. Melton
  Cc: Qi Zhang, konstantin.ananyev, jingjing.wu, beilei.xing, dev, stable

On Tue, Oct 10, 2017 at 07:05:33AM -0400, Roger B. Melton wrote:
> Hi Bruce,
> 
> I can.  It will take a day or 2 to get the results.
> 
> Regards,
> Roger
> 

Thanks. Keep us posted. We want to ensure we have the best fix possible
for the issue in this release.

/Bruce

> 
> On 10/10/17 4:48 AM, Bruce Richardson wrote:
> > +Roger Melton
> > 
> > On Tue, Oct 10, 2017 at 09:22:05AM -0400, Qi Zhang wrote:
> > > vPMD tx does not set sw_ring's mbuf to NULL after free it.
> > > So to prevent same mbuf be free again, we need more carefully
> > > check in i40e_tx_queue_release_mbufs.
> > > 
> > > Fixes: b4669bb95038 ("i40e: add vector Tx")
> > > Cc: stable@dpdk.org
> > > 
> > > Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> > > ---
> > > v2:
> > > - fix at i40e_tx_queue_release_mbufs so no performance impact.
> > > 
> > This patch also supercedes this one, http://dpdk.org/dev/patchwork/patch/29814/
> > right?
> > Roger, can you please confirm that this alternative fix works in your
> > testing and that your patch is no longer necessary too.
> > 
> > Thanks,
> > /Bruce
> > 
> > .
> > 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-10  8:48 ` Bruce Richardson
@ 2017-10-10 11:05   ` Roger B. Melton
  2017-10-10 11:39     ` Bruce Richardson
  0 siblings, 1 reply; 10+ messages in thread
From: Roger B. Melton @ 2017-10-10 11:05 UTC (permalink / raw)
  To: Bruce Richardson, Qi Zhang
  Cc: konstantin.ananyev, jingjing.wu, beilei.xing, dev, stable

Hi Bruce,

I can.  It will take a day or 2 to get the results.

Regards,
Roger


On 10/10/17 4:48 AM, Bruce Richardson wrote:
> +Roger Melton
>
> On Tue, Oct 10, 2017 at 09:22:05AM -0400, Qi Zhang wrote:
>> vPMD tx does not set sw_ring's mbuf to NULL after free it.
>> So to prevent same mbuf be free again, we need more carefully
>> check in i40e_tx_queue_release_mbufs.
>>
>> Fixes: b4669bb95038 ("i40e: add vector Tx")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
>> ---
>> v2:
>> - fix at i40e_tx_queue_release_mbufs so no performance impact.
>>
> This patch also supercedes this one, http://dpdk.org/dev/patchwork/patch/29814/
> right?
> Roger, can you please confirm that this alternative fix works in your
> testing and that your patch is no longer necessary too.
>
> Thanks,
> /Bruce
>
> .
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD
  2017-10-10 13:22 Qi Zhang
@ 2017-10-10  8:48 ` Bruce Richardson
  2017-10-10 11:05   ` Roger B. Melton
  0 siblings, 1 reply; 10+ messages in thread
From: Bruce Richardson @ 2017-10-10  8:48 UTC (permalink / raw)
  To: Qi Zhang, Roger B Melton
  Cc: konstantin.ananyev, jingjing.wu, beilei.xing, dev, stable

+Roger Melton

On Tue, Oct 10, 2017 at 09:22:05AM -0400, Qi Zhang wrote:
> vPMD tx does not set sw_ring's mbuf to NULL after free it.
> So to prevent same mbuf be free again, we need more carefully
> check in i40e_tx_queue_release_mbufs.
> 
> Fixes: b4669bb95038 ("i40e: add vector Tx")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
> v2:
> - fix at i40e_tx_queue_release_mbufs so no performance impact.
> 
This patch also supercedes this one, http://dpdk.org/dev/patchwork/patch/29814/
right?
Roger, can you please confirm that this alternative fix works in your
testing and that your patch is no longer necessary too.

Thanks,
/Bruce

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-10-10 11:47 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-09  8:53 [dpdk-dev] [PATCH] net/i40e: fix unexpected mbuf free in vPMD Qi Zhang
2017-10-09  1:47 ` Wu, Jingjing
2017-10-09 12:44 ` Ananyev, Konstantin
2017-10-09 13:20   ` Bruce Richardson
2017-10-10  1:10   ` Zhang, Qi Z
2017-10-10 13:22 Qi Zhang
2017-10-10  8:48 ` Bruce Richardson
2017-10-10 11:05   ` Roger B. Melton
2017-10-10 11:39     ` Bruce Richardson
2017-10-10 11:47       ` Roger B. Melton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).