[v1,2/3] net/axgbe: correct API call when offload enabled

Message ID 20231111160006.455767-2-jesna.k.e@amd.com (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers
Series [v1,1/3] net/axgbe: packet size doesn't exceed the configured MTU |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Jesna K E Nov. 11, 2023, 4 p.m. UTC
  Fixes: 9963b5131af8 ("net/axgbe: support multi-process")

Signed-off-by: Jesna K E <jesna.k.e@amd.com>
---
 drivers/net/axgbe/axgbe_ethdev.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Comments

Ferruh Yigit Nov. 13, 2023, 3:23 p.m. UTC | #1
On 11/11/2023 4:00 PM, Jesna K E wrote:
> Fixes: 9963b5131af8 ("net/axgbe: support multi-process")
> 

Can you please add more description?


> Signed-off-by: Jesna K E <jesna.k.e@amd.com>
> ---
>  drivers/net/axgbe/axgbe_ethdev.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c
> index e12ee3e17a..e1cb60c1c3 100644
> --- a/drivers/net/axgbe/axgbe_ethdev.c
> +++ b/drivers/net/axgbe/axgbe_ethdev.c
> @@ -2130,16 +2130,18 @@ void
>  axgbe_set_tx_function(struct rte_eth_dev *dev)
>  {
>  	struct axgbe_port *pdata = dev->data->dev_private;
> +	struct axgbe_tx_queue *txq = dev->data->tx_queues[0];
>  
>  	if (pdata->multi_segs_tx)
>  		dev->tx_pkt_burst = &axgbe_xmit_pkts_seg;
> +	else if (txq->vector_disable ||
> +			rte_vect_get_max_simd_bitwidth() < RTE_VECT_SIMD_128)
> +		dev->tx_pkt_burst = &axgbe_xmit_pkts;
> +	else
>  #ifdef RTE_ARCH_X86
> -	struct axgbe_tx_queue *txq = dev->data->tx_queues[0];
> -	if (!txq->vector_disable &&
> -			rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
>  		dev->tx_pkt_burst = &axgbe_xmit_pkts_vec;
>  #else
> -	dev->tx_pkt_burst = &axgbe_xmit_pkts;
> +		dev->tx_pkt_burst = &axgbe_xmit_pkts;
>  #endif
>  }
>  

What about following for simplification:

{
  tx_pkt_burst = &axgbe_xmit_pkts;

  if (pdata->multi_segs_tx)
    tx_pkt_burst = &axgbe_xmit_pkts_seg;
  else if (!vector_disable &&
      rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
    tx_pkt_burst = &axgbe_xmit_pkts_vec;
}
  
Ferruh Yigit Nov. 13, 2023, 4:55 p.m. UTC | #2
On 11/13/2023 3:23 PM, Ferruh Yigit wrote:
> On 11/11/2023 4:00 PM, Jesna K E wrote:
>> Fixes: 9963b5131af8 ("net/axgbe: support multi-process")
>>
> 
> Can you please add more description?
> 
> 
>> Signed-off-by: Jesna K E <jesna.k.e@amd.com>
>> ---
>>  drivers/net/axgbe/axgbe_ethdev.c | 10 ++++++----
>>  1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c
>> index e12ee3e17a..e1cb60c1c3 100644
>> --- a/drivers/net/axgbe/axgbe_ethdev.c
>> +++ b/drivers/net/axgbe/axgbe_ethdev.c
>> @@ -2130,16 +2130,18 @@ void
>>  axgbe_set_tx_function(struct rte_eth_dev *dev)
>>  {
>>  	struct axgbe_port *pdata = dev->data->dev_private;
>> +	struct axgbe_tx_queue *txq = dev->data->tx_queues[0];
>>  
>>  	if (pdata->multi_segs_tx)
>>  		dev->tx_pkt_burst = &axgbe_xmit_pkts_seg;
>> +	else if (txq->vector_disable ||
>> +			rte_vect_get_max_simd_bitwidth() < RTE_VECT_SIMD_128)
>> +		dev->tx_pkt_burst = &axgbe_xmit_pkts;
>> +	else
>>  #ifdef RTE_ARCH_X86
>> -	struct axgbe_tx_queue *txq = dev->data->tx_queues[0];
>> -	if (!txq->vector_disable &&
>> -			rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
>>  		dev->tx_pkt_burst = &axgbe_xmit_pkts_vec;
>>  #else
>> -	dev->tx_pkt_burst = &axgbe_xmit_pkts;
>> +		dev->tx_pkt_burst = &axgbe_xmit_pkts;
>>  #endif
>>  }
>>  
> 
> What about following for simplification:
> 
> {
>   tx_pkt_burst = &axgbe_xmit_pkts;
> 
>   if (pdata->multi_segs_tx)
>     tx_pkt_burst = &axgbe_xmit_pkts_seg;
>   else if (!vector_disable &&
>       rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
>     tx_pkt_burst = &axgbe_xmit_pkts_vec;
> }

btw, there is a build error [1], about implicit declaration of function
and enum, which can be fixed by included relevant header [2].


[1]
https://mails.dpdk.org/archives/test-report/2023-November/508556.html

[2]
 + #include <rte_vect.h>
  

Patch

diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c
index e12ee3e17a..e1cb60c1c3 100644
--- a/drivers/net/axgbe/axgbe_ethdev.c
+++ b/drivers/net/axgbe/axgbe_ethdev.c
@@ -2130,16 +2130,18 @@  void
 axgbe_set_tx_function(struct rte_eth_dev *dev)
 {
 	struct axgbe_port *pdata = dev->data->dev_private;
+	struct axgbe_tx_queue *txq = dev->data->tx_queues[0];
 
 	if (pdata->multi_segs_tx)
 		dev->tx_pkt_burst = &axgbe_xmit_pkts_seg;
+	else if (txq->vector_disable ||
+			rte_vect_get_max_simd_bitwidth() < RTE_VECT_SIMD_128)
+		dev->tx_pkt_burst = &axgbe_xmit_pkts;
+	else
 #ifdef RTE_ARCH_X86
-	struct axgbe_tx_queue *txq = dev->data->tx_queues[0];
-	if (!txq->vector_disable &&
-			rte_vect_get_max_simd_bitwidth() >= RTE_VECT_SIMD_128)
 		dev->tx_pkt_burst = &axgbe_xmit_pkts_vec;
 #else
-	dev->tx_pkt_burst = &axgbe_xmit_pkts;
+		dev->tx_pkt_burst = &axgbe_xmit_pkts;
 #endif
 }