DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled
@ 2022-09-29  4:05 Usman Tanveer
  2022-09-29  4:16 ` Usman Tanveer
  2022-10-15 15:28 ` Chas Williams
  0 siblings, 2 replies; 4+ messages in thread
From: Usman Tanveer @ 2022-09-29  4:05 UTC (permalink / raw)
  To: chas3, humin29; +Cc: dev, Usman Tanveer

when dedicated queues are enable with bonding mode 4 (mlx5), the
application sets the flow, which cannot be set if the device is not
started. This fixed the issue by starting the device just before
setting the flow. Because device should be started to set the flow.
Also it does not effect other driver codes (I have tried on ixgbe).

Bugzilla ID: 759

Signed-off-by: Usman Tanveer <usman.tanveer@emumba.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index fd2d95a751..69cbbe19ff 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1828,7 +1828,18 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
 			RTE_BOND_LOG(ERR, "bond_ethdev_8023ad_flow_destroy: port=%d, err (%d)",
 				slave_eth_dev->data->port_id, errval);
 		}
+	}
+
+	/* Start device */
+	errval = rte_eth_dev_start(slave_eth_dev->data->port_id);
+	if (errval != 0) {
+		RTE_BOND_LOG(ERR, "rte_eth_dev_start: port=%u, err (%d)",
+				slave_eth_dev->data->port_id, errval);
+		return -1;
+	}
 
+	if (internals->mode == BONDING_MODE_8023AD &&
+			internals->mode4.dedicated_queues.enabled == 1) {
 		errval = bond_ethdev_8023ad_flow_set(bonded_eth_dev,
 				slave_eth_dev->data->port_id);
 		if (errval != 0) {
@@ -1839,14 +1850,6 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
 		}
 	}
 
-	/* Start device */
-	errval = rte_eth_dev_start(slave_eth_dev->data->port_id);
-	if (errval != 0) {
-		RTE_BOND_LOG(ERR, "rte_eth_dev_start: port=%u, err (%d)",
-				slave_eth_dev->data->port_id, errval);
-		return -1;
-	}
-
 	/* If RSS is enabled for bonding, synchronize RETA */
 	if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
 		int i;
-- 
2.25.1


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

* Re: [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled
  2022-09-29  4:05 [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled Usman Tanveer
@ 2022-09-29  4:16 ` Usman Tanveer
  2022-10-15 15:28 ` Chas Williams
  1 sibling, 0 replies; 4+ messages in thread
From: Usman Tanveer @ 2022-09-29  4:16 UTC (permalink / raw)
  To: chas3, humin29; +Cc: dev

We cannot configure the queues when the device is started. So, that
part is still before the device starts. I just moved
bond_ethdev_8023ad_flow_set() after the device start.


On Thu, Sep 29, 2022 at 9:05 AM Usman Tanveer <usman.tanveer@emumba.com> wrote:
>
> when dedicated queues are enable with bonding mode 4 (mlx5), the
> application sets the flow, which cannot be set if the device is not
> started. This fixed the issue by starting the device just before
> setting the flow. Because device should be started to set the flow.
> Also it does not effect other driver codes (I have tried on ixgbe).
>
> Bugzilla ID: 759
>
> Signed-off-by: Usman Tanveer <usman.tanveer@emumba.com>
> ---
>  drivers/net/bonding/rte_eth_bond_pmd.c | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index fd2d95a751..69cbbe19ff 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -1828,7 +1828,18 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
>                         RTE_BOND_LOG(ERR, "bond_ethdev_8023ad_flow_destroy: port=%d, err (%d)",
>                                 slave_eth_dev->data->port_id, errval);
>                 }
> +       }
> +
> +       /* Start device */
> +       errval = rte_eth_dev_start(slave_eth_dev->data->port_id);
> +       if (errval != 0) {
> +               RTE_BOND_LOG(ERR, "rte_eth_dev_start: port=%u, err (%d)",
> +                               slave_eth_dev->data->port_id, errval);
> +               return -1;
> +       }
>
> +       if (internals->mode == BONDING_MODE_8023AD &&
> +                       internals->mode4.dedicated_queues.enabled == 1) {
>                 errval = bond_ethdev_8023ad_flow_set(bonded_eth_dev,
>                                 slave_eth_dev->data->port_id);
>                 if (errval != 0) {
> @@ -1839,14 +1850,6 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
>                 }
>         }
>
> -       /* Start device */
> -       errval = rte_eth_dev_start(slave_eth_dev->data->port_id);
> -       if (errval != 0) {
> -               RTE_BOND_LOG(ERR, "rte_eth_dev_start: port=%u, err (%d)",
> -                               slave_eth_dev->data->port_id, errval);
> -               return -1;
> -       }
> -
>         /* If RSS is enabled for bonding, synchronize RETA */
>         if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
>                 int i;
> --
> 2.25.1
>

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

* Re: [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled
  2022-09-29  4:05 [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled Usman Tanveer
  2022-09-29  4:16 ` Usman Tanveer
@ 2022-10-15 15:28 ` Chas Williams
  2022-10-17  8:28   ` Andrew Rybchenko
  1 sibling, 1 reply; 4+ messages in thread
From: Chas Williams @ 2022-10-15 15:28 UTC (permalink / raw)
  To: Usman Tanveer, chas3, humin29; +Cc: dev

Thanks for making the change, IMHO this is much clearer.

Signed-off-by: Chas Williams <3chas3@gmail.com>

On 9/29/22 00:05, Usman Tanveer wrote:
> when dedicated queues are enable with bonding mode 4 (mlx5), the
> application sets the flow, which cannot be set if the device is not
> started. This fixed the issue by starting the device just before
> setting the flow. Because device should be started to set the flow.
> Also it does not effect other driver codes (I have tried on ixgbe).
> 
> Bugzilla ID: 759
> 
> Signed-off-by: Usman Tanveer <usman.tanveer@emumba.com>
> ---
>   drivers/net/bonding/rte_eth_bond_pmd.c | 19 +++++++++++--------
>   1 file changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index fd2d95a751..69cbbe19ff 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -1828,7 +1828,18 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
>   			RTE_BOND_LOG(ERR, "bond_ethdev_8023ad_flow_destroy: port=%d, err (%d)",
>   				slave_eth_dev->data->port_id, errval);
>   		}
> +	}
> +
> +	/* Start device */
> +	errval = rte_eth_dev_start(slave_eth_dev->data->port_id);
> +	if (errval != 0) {
> +		RTE_BOND_LOG(ERR, "rte_eth_dev_start: port=%u, err (%d)",
> +				slave_eth_dev->data->port_id, errval);
> +		return -1;
> +	}
>   
> +	if (internals->mode == BONDING_MODE_8023AD &&
> +			internals->mode4.dedicated_queues.enabled == 1) {
>   		errval = bond_ethdev_8023ad_flow_set(bonded_eth_dev,
>   				slave_eth_dev->data->port_id);
>   		if (errval != 0) {
> @@ -1839,14 +1850,6 @@ slave_start(struct rte_eth_dev *bonded_eth_dev,
>   		}
>   	}
>   
> -	/* Start device */
> -	errval = rte_eth_dev_start(slave_eth_dev->data->port_id);
> -	if (errval != 0) {
> -		RTE_BOND_LOG(ERR, "rte_eth_dev_start: port=%u, err (%d)",
> -				slave_eth_dev->data->port_id, errval);
> -		return -1;
> -	}
> -
>   	/* If RSS is enabled for bonding, synchronize RETA */
>   	if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
>   		int i;

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

* Re: [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled
  2022-10-15 15:28 ` Chas Williams
@ 2022-10-17  8:28   ` Andrew Rybchenko
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Rybchenko @ 2022-10-17  8:28 UTC (permalink / raw)
  To: Chas Williams, Usman Tanveer, chas3, humin29; +Cc: dev

On 10/15/22 18:28, Chas Williams wrote:
> Thanks for making the change, IMHO this is much clearer.
> 
> Signed-off-by: Chas Williams <3chas3@gmail.com>

Taking above sentence into account I treat it as:
Acked-by: Chas Williams <3chas3@gmail.com>

> 
> On 9/29/22 00:05, Usman Tanveer wrote:
>> when dedicated queues are enable with bonding mode 4 (mlx5), the
>> application sets the flow, which cannot be set if the device is not
>> started. This fixed the issue by starting the device just before
>> setting the flow. Because device should be started to set the flow.
>> Also it does not effect other driver codes (I have tried on ixgbe).
>>
>> Bugzilla ID: 759
>>
>> Signed-off-by: Usman Tanveer <usman.tanveer@emumba.com>

Applied to dpdk-next-net/main, thanks.



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

end of thread, other threads:[~2022-10-17  8:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-29  4:05 [PATCH v2] net/bonding: fix error in bonding mode 4 with dedicated queues enabled Usman Tanveer
2022-09-29  4:16 ` Usman Tanveer
2022-10-15 15:28 ` Chas Williams
2022-10-17  8:28   ` Andrew Rybchenko

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).