[dpdk-dev] net/i40e: fix missing mbuf fast free offload

Message ID 20180507012626.95313-1-qi.z.zhang@intel.com (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Qi Zhang May 7, 2018, 1:26 a.m. UTC
  Expose the missing mbuf fast free capability since i40 does
support it.

Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Comments

Xing, Beilei May 7, 2018, 5:08 a.m. UTC | #1
> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Monday, May 7, 2018 9:26 AM
> To: Yigit, Ferruh <ferruh.yigit@intel.com>
> Cc: Xing, Beilei <beilei.xing@intel.com>; dev@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Subject: [PATCH] net/i40e: fix missing mbuf fast free offload
> 
> Expose the missing mbuf fast free capability since i40 does support it.
> 
> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 92ee6c5ae..e866c3081 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3301,7 +3301,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		DEV_RX_OFFLOAD_VLAN_FILTER |
>  		DEV_RX_OFFLOAD_JUMBO_FRAME;
> 
> -	dev_info->tx_queue_offload_capa = 0;
> +	dev_info->tx_queue_offload_capa =
> DEV_TX_OFFLOAD_MBUF_FAST_FREE;
>  	dev_info->tx_offload_capa =
>  		DEV_TX_OFFLOAD_VLAN_INSERT |
>  		DEV_TX_OFFLOAD_QINQ_INSERT |
> @@ -3314,7 +3314,9 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct
> rte_eth_dev_info *dev_info)
>  		DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
>  		DEV_TX_OFFLOAD_GRE_TNL_TSO |
>  		DEV_TX_OFFLOAD_IPIP_TNL_TSO |
> -		DEV_TX_OFFLOAD_GENEVE_TNL_TSO;
> +		DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
> +		dev_info->tx_queue_offload_capa;
> +
>  	dev_info->dev_capa =
>  		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
>  		RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;
> --
> 2.13.6

Acked-by: Beilei Xing <beilei.xing@intel.com>
  
Ferruh Yigit May 8, 2018, 4:50 p.m. UTC | #2
On 5/7/2018 6:08 AM, Xing, Beilei wrote:
> 
> 
>> -----Original Message-----
>> From: Zhang, Qi Z
>> Sent: Monday, May 7, 2018 9:26 AM
>> To: Yigit, Ferruh <ferruh.yigit@intel.com>
>> Cc: Xing, Beilei <beilei.xing@intel.com>; dev@dpdk.org; Zhang, Qi Z
>> <qi.z.zhang@intel.com>
>> Subject: [PATCH] net/i40e: fix missing mbuf fast free offload
>>
>> Expose the missing mbuf fast free capability since i40 does support it.
>>
>> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
>>
>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>

> 
> Acked-by: Beilei Xing <beilei.xing@intel.com>

Applied to dpdk-next-net/master, thanks.
  
Ferruh Yigit May 10, 2018, 10:09 p.m. UTC | #3
On 5/8/2018 5:50 PM, Ferruh Yigit wrote:
> On 5/7/2018 6:08 AM, Xing, Beilei wrote:
>>
>>
>>> -----Original Message-----
>>> From: Zhang, Qi Z
>>> Sent: Monday, May 7, 2018 9:26 AM
>>> To: Yigit, Ferruh <ferruh.yigit@intel.com>
>>> Cc: Xing, Beilei <beilei.xing@intel.com>; dev@dpdk.org; Zhang, Qi Z
>>> <qi.z.zhang@intel.com>
>>> Subject: [PATCH] net/i40e: fix missing mbuf fast free offload
>>>
>>> Expose the missing mbuf fast free capability since i40 does support it.
>>>
>>> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")
>>>
>>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> 
>>
>> Acked-by: Beilei Xing <beilei.xing@intel.com>
> 
> Applied to dpdk-next-net/master, thanks.

Hi Beilei, Qi,

This patch is preventing i40e to use Tx avx2 fast path and cause a performance
drop, you need to allow this offload in Tx data path selection logic.

Dropping this patch from next-net, updated patch status in patchwork, please
send a new version.

Thanks,
ferruh
  
Qi Zhang May 11, 2018, 12:39 a.m. UTC | #4
> -----Original Message-----

> From: Yigit, Ferruh

> Sent: Friday, May 11, 2018 6:10 AM

> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>

> Cc: dev@dpdk.org

> Subject: Re: [dpdk-dev] [PATCH] net/i40e: fix missing mbuf fast free offload

> 

> On 5/8/2018 5:50 PM, Ferruh Yigit wrote:

> > On 5/7/2018 6:08 AM, Xing, Beilei wrote:

> >>

> >>

> >>> -----Original Message-----

> >>> From: Zhang, Qi Z

> >>> Sent: Monday, May 7, 2018 9:26 AM

> >>> To: Yigit, Ferruh <ferruh.yigit@intel.com>

> >>> Cc: Xing, Beilei <beilei.xing@intel.com>; dev@dpdk.org; Zhang, Qi Z

> >>> <qi.z.zhang@intel.com>

> >>> Subject: [PATCH] net/i40e: fix missing mbuf fast free offload

> >>>

> >>> Expose the missing mbuf fast free capability since i40 does support it.

> >>>

> >>> Fixes: 7497d3e2f777 ("net/i40e: convert to new Tx offloads API")

> >>>

> >>> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>

> >

> >>

> >> Acked-by: Beilei Xing <beilei.xing@intel.com>

> >

> > Applied to dpdk-next-net/master, thanks.

> 

> Hi Beilei, Qi,

> 

> This patch is preventing i40e to use Tx avx2 fast path and cause a performance

> drop, you need to allow this offload in Tx data path selection logic.


OK, I missed that, will fix. thanks.

> 

> Dropping this patch from next-net, updated patch status in patchwork, please

> send a new version.

> 

> Thanks,

> ferruh
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 92ee6c5ae..e866c3081 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3301,7 +3301,7 @@  i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		DEV_RX_OFFLOAD_VLAN_FILTER |
 		DEV_RX_OFFLOAD_JUMBO_FRAME;
 
-	dev_info->tx_queue_offload_capa = 0;
+	dev_info->tx_queue_offload_capa = DEV_TX_OFFLOAD_MBUF_FAST_FREE;
 	dev_info->tx_offload_capa =
 		DEV_TX_OFFLOAD_VLAN_INSERT |
 		DEV_TX_OFFLOAD_QINQ_INSERT |
@@ -3314,7 +3314,9 @@  i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 		DEV_TX_OFFLOAD_VXLAN_TNL_TSO |
 		DEV_TX_OFFLOAD_GRE_TNL_TSO |
 		DEV_TX_OFFLOAD_IPIP_TNL_TSO |
-		DEV_TX_OFFLOAD_GENEVE_TNL_TSO;
+		DEV_TX_OFFLOAD_GENEVE_TNL_TSO |
+		dev_info->tx_queue_offload_capa;
+
 	dev_info->dev_capa =
 		RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP |
 		RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP;