net/mlx5: fix default rule do RSS regardless rxmode

Message ID 208bd4b9828bf89cba4d546f9091e2807d478502.1588164500.git.jackmin@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix default rule do RSS regardless rxmode |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/Intel-compilation fail Compilation issues
ci/iol-testing success Testing PASS

Commit Message

Xiaoyu Min April 29, 2020, 1 p.m. UTC
  PMD create some default control rules with RSS action
if it's not isolated mode.

However whether default control rules need to do RSS or not should be
controlled by device configuration, the mq_mode of rxmode configuration
in specific.

In another word, only when mq_mode is configured with ETH_MQ_RX_RSS_FLAG
set, then RSS is needed for default rules.

Fixes: c64ccc0eca2f ("mlx5: fix overwritten RSS configuration")
Cc: stable@dpdk.org

Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Slava Ovsiienko April 30, 2020, 8:51 a.m. UTC | #1
> -----Original Message-----
> From: Xiaoyu Min <jackmin@mellanox.com>
> Sent: Wednesday, April 29, 2020 16:01
> To: Matan Azrad <matan@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Slava Ovsiienko <viacheslavo@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: [PATCH] net/mlx5: fix default rule do RSS regardless rxmode
> 
> PMD create some default control rules with RSS action if it's not isolated
> mode.
> 
> However whether default control rules need to do RSS or not should be
> controlled by device configuration, the mq_mode of rxmode configuration in
> specific.
> 
> In another word, only when mq_mode is configured with
> ETH_MQ_RX_RSS_FLAG set, then RSS is needed for default rules.
> 
> Fixes: c64ccc0eca2f ("mlx5: fix overwritten RSS configuration")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

> ---
>  drivers/net/mlx5/mlx5_flow.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index e9ae2f782c..cb593c9449 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -4912,6 +4912,8 @@ mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev,
>  	if (!priv->reta_idx_n || !priv->rxqs_n) {
>  		return 0;
>  	}
> +	if (!(dev->data->dev_conf.rxmode.mq_mode &
> ETH_MQ_RX_RSS_FLAG))
> +		action_rss.types = 0;
>  	for (i = 0; i != priv->reta_idx_n; ++i)
>  		queue[i] = (*priv->reta_idx)[i];
>  	flow_idx = flow_list_create(dev, &priv->ctrl_flows,
> --
> 2.26.0
  
Slava Ovsiienko April 30, 2020, 8:54 a.m. UTC | #2
> -----Original Message-----
> From: Slava Ovsiienko
> Sent: Thursday, April 30, 2020 11:52
> To: Xiaoyu Min <jackmin@mellanox.com>; Matan Azrad
> <matan@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: RE: [PATCH] net/mlx5: fix default rule do RSS regardless rxmode
> 
> > -----Original Message-----
> > From: Xiaoyu Min <jackmin@mellanox.com>
> > Sent: Wednesday, April 29, 2020 16:01
> > To: Matan Azrad <matan@mellanox.com>; Shahaf Shuler
> > <shahafs@mellanox.com>; Slava Ovsiienko <viacheslavo@mellanox.com>
> > Cc: dev@dpdk.org; stable@dpdk.org
> > Subject: [PATCH] net/mlx5: fix default rule do RSS regardless rxmode
> >
> > PMD create some default control rules with RSS action if it's not
> > isolated mode.
> >
> > However whether default control rules need to do RSS or not should be
> > controlled by device configuration, the mq_mode of rxmode
> > configuration in specific.
> >
> > In another word, only when mq_mode is configured with
> > ETH_MQ_RX_RSS_FLAG set, then RSS is needed for default rules.
> >
> > Fixes: c64ccc0eca2f ("mlx5: fix overwritten RSS configuration")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

> 
> > ---
> >  drivers/net/mlx5/mlx5_flow.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/mlx5/mlx5_flow.c
> > b/drivers/net/mlx5/mlx5_flow.c index e9ae2f782c..cb593c9449 100644
> > --- a/drivers/net/mlx5/mlx5_flow.c
> > +++ b/drivers/net/mlx5/mlx5_flow.c
> > @@ -4912,6 +4912,8 @@ mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev,
> >  	if (!priv->reta_idx_n || !priv->rxqs_n) {
> >  		return 0;
> >  	}
> > +	if (!(dev->data->dev_conf.rxmode.mq_mode &
> > ETH_MQ_RX_RSS_FLAG))
> > +		action_rss.types = 0;
> >  	for (i = 0; i != priv->reta_idx_n; ++i)
> >  		queue[i] = (*priv->reta_idx)[i];
> >  	flow_idx = flow_list_create(dev, &priv->ctrl_flows,
> > --
> > 2.26.0
  
Matan Azrad April 30, 2020, 11:58 a.m. UTC | #3
From: Slava Ovsiienko
> > -----Original Message-----
> > From: Slava Ovsiienko
> > Sent: Thursday, April 30, 2020 11:52
> > To: Xiaoyu Min <jackmin@mellanox.com>; Matan Azrad
> > <matan@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> > Cc: dev@dpdk.org; stable@dpdk.org
> > Subject: RE: [PATCH] net/mlx5: fix default rule do RSS regardless
> > rxmode
> >
> > > -----Original Message-----
> > > From: Xiaoyu Min <jackmin@mellanox.com>
> > > Sent: Wednesday, April 29, 2020 16:01
> > > To: Matan Azrad <matan@mellanox.com>; Shahaf Shuler
> > > <shahafs@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>
> > > Cc: dev@dpdk.org; stable@dpdk.org
> > > Subject: [PATCH] net/mlx5: fix default rule do RSS regardless rxmode
> > >
> > > PMD create some default control rules with RSS action if it's not
> > > isolated mode.
> > >
> > > However whether default control rules need to do RSS or not should
> > > be controlled by device configuration, the mq_mode of rxmode
> > > configuration in specific.
> > >
> > > In another word, only when mq_mode is configured with
> > > ETH_MQ_RX_RSS_FLAG set, then RSS is needed for default rules.
> > >
> > > Fixes: c64ccc0eca2f ("mlx5: fix overwritten RSS configuration")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
  
Raslan Darawsheh May 3, 2020, 8:47 a.m. UTC | #4
Hi,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Xiaoyu Min
> Sent: Wednesday, April 29, 2020 4:01 PM
> To: Matan Azrad <matan@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Slava Ovsiienko <viacheslavo@mellanox.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix default rule do RSS regardless
> rxmode
> 
> PMD create some default control rules with RSS action
> if it's not isolated mode.
> 
> However whether default control rules need to do RSS or not should be
> controlled by device configuration, the mq_mode of rxmode configuration
> in specific.
> 
> In another word, only when mq_mode is configured with
> ETH_MQ_RX_RSS_FLAG
> set, then RSS is needed for default rules.
> 
> Fixes: c64ccc0eca2f ("mlx5: fix overwritten RSS configuration")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_flow.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index e9ae2f782c..cb593c9449 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -4912,6 +4912,8 @@ mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev,
>  	if (!priv->reta_idx_n || !priv->rxqs_n) {
>  		return 0;
>  	}
> +	if (!(dev->data->dev_conf.rxmode.mq_mode &
> ETH_MQ_RX_RSS_FLAG))
> +		action_rss.types = 0;
>  	for (i = 0; i != priv->reta_idx_n; ++i)
>  		queue[i] = (*priv->reta_idx)[i];
>  	flow_idx = flow_list_create(dev, &priv->ctrl_flows,
> --
> 2.26.0


Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index e9ae2f782c..cb593c9449 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -4912,6 +4912,8 @@  mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev,
 	if (!priv->reta_idx_n || !priv->rxqs_n) {
 		return 0;
 	}
+	if (!(dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG))
+		action_rss.types = 0;
 	for (i = 0; i != priv->reta_idx_n; ++i)
 		queue[i] = (*priv->reta_idx)[i];
 	flow_idx = flow_list_create(dev, &priv->ctrl_flows,