[dpdk-dev] net/mlx5: fix compilation without tunnel RSS support

Message ID 20180513080746.91199-1-shahafs@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Shahaf Shuler
Headers

Checks

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

Commit Message

Shahaf Shuler May 13, 2018, 8:07 a.m. UTC
  IBV_RX_HASH_INNER should be referenced only when having tunnel support
in the Verbs headers.

Fixes: 80f2d0ed7ff9 ("net/mlx5: add hardware flow debug dump")
Cc: xuemingl@mellanox.com

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
---
 drivers/net/mlx5/mlx5_flow.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
  

Comments

Xueming Li May 13, 2018, 1:27 p.m. UTC | #1
Thanks for fixing this, one minor issue below.

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

> From: Shahaf Shuler <shahafs@mellanox.com>

> Sent: Sunday, May 13, 2018 4:08 PM

> To: Nélio Laranjeiro <nelio.laranjeiro@6wind.com>; Adrien Mazarguil <adrien.mazarguil@6wind.com>;

> Yongseok Koh <yskoh@mellanox.com>

> Cc: dev@dpdk.org; Xueming(Steven) Li <xuemingl@mellanox.com>

> Subject: [PATCH] net/mlx5: fix compilation without tunnel RSS support

> 

> IBV_RX_HASH_INNER should be referenced only when having tunnel support in the Verbs headers.

> 

> Fixes: 80f2d0ed7ff9 ("net/mlx5: add hardware flow debug dump")

> Cc: xuemingl@mellanox.com

> 

> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>

> ---

>  drivers/net/mlx5/mlx5_flow.c | 9 ++++++---

>  1 file changed, 6 insertions(+), 3 deletions(-)

> 

> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index ec6d00f21b..04ace3ee79

> 100644

> --- a/drivers/net/mlx5/mlx5_flow.c

> +++ b/drivers/net/mlx5/mlx5_flow.c

> @@ -2188,7 +2188,12 @@ mlx5_flow_dump(struct rte_eth_dev *dev __rte_unused,

>  	uint16_t j;

>  	char buf[256];

>  	uint8_t off;

> +	uint64_t extra_hash_fields = 0;

> 

> +#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT

> +	if (flow->tunnel && flow->rss_conf.level > 1)

> +		extra_hash_fields = (uint32_t)IBV_RX_HASH_INNER; #endif


Should "#endif" start with a new line?

>  	spec_ptr = (uintptr_t)(flow->frxq[hrxq_idx].ibv_attr + 1);

>  	for (j = 0, off = 0; j < flow->frxq[hrxq_idx].ibv_attr->num_of_specs;

>  	     j++) {

> @@ -2205,9 +2210,7 @@ mlx5_flow_dump(struct rte_eth_dev *dev __rte_unused,

>  		(void *)flow->frxq[hrxq_idx].hrxq,

>  		(void *)flow->frxq[hrxq_idx].hrxq->qp,

>  		(void *)flow->frxq[hrxq_idx].hrxq->ind_table,

> -		flow->frxq[hrxq_idx].hash_fields |

> -		(flow->tunnel &&

> -		 flow->rss_conf.level > 1 ? (uint32_t)IBV_RX_HASH_INNER : 0),

> +		(flow->frxq[hrxq_idx].hash_fields | extra_hash_fields),

>  		flow->rss_conf.queue_num,

>  		flow->frxq[hrxq_idx].ibv_attr->num_of_specs,

>  		flow->frxq[hrxq_idx].ibv_attr->size,

> --

> 2.12.0
  
Shahaf Shuler May 14, 2018, 6 a.m. UTC | #2
Sunday, May 13, 2018 4:28 PM, Xueming(Steven) Li:
> Thanks for fixing this, one minor issue below.

> 

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

> > From: Shahaf Shuler <shahafs@mellanox.com>

> > Sent: Sunday, May 13, 2018 4:08 PM

> > To: Nélio Laranjeiro <nelio.laranjeiro@6wind.com>; Adrien Mazarguil

> > <adrien.mazarguil@6wind.com>; Yongseok Koh <yskoh@mellanox.com>

> > Cc: dev@dpdk.org; Xueming(Steven) Li <xuemingl@mellanox.com>

> > Subject: [PATCH] net/mlx5: fix compilation without tunnel RSS support

> >

> > IBV_RX_HASH_INNER should be referenced only when having tunnel

> support in the Verbs headers.

> >

> > Fixes: 80f2d0ed7ff9 ("net/mlx5: add hardware flow debug dump")

> > Cc: xuemingl@mellanox.com

> >

> > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>

> > ---

> >  drivers/net/mlx5/mlx5_flow.c | 9 ++++++---

> >  1 file changed, 6 insertions(+), 3 deletions(-)

> >

> > diff --git a/drivers/net/mlx5/mlx5_flow.c

> > b/drivers/net/mlx5/mlx5_flow.c index ec6d00f21b..04ace3ee79

> > 100644

> > --- a/drivers/net/mlx5/mlx5_flow.c

> > +++ b/drivers/net/mlx5/mlx5_flow.c

> > @@ -2188,7 +2188,12 @@ mlx5_flow_dump(struct rte_eth_dev *dev

> __rte_unused,

> >  	uint16_t j;

> >  	char buf[256];

> >  	uint8_t off;

> > +	uint64_t extra_hash_fields = 0;

> >

> > +#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT

> > +	if (flow->tunnel && flow->rss_conf.level > 1)

> > +		extra_hash_fields = (uint32_t)IBV_RX_HASH_INNER; #endif

> 

> Should "#endif" start with a new line?


It is in new line. You probably see it wrongly in outlook.

Have a look on the patch in patchwork:
http://dpdk.org/dev/patchwork/patch/39927/
  
Shahaf Shuler May 15, 2018, 12:30 p.m. UTC | #3
Monday, May 14, 2018 9:00 AM, Shahaf Shuler:
> Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix compilation without tunnel

> RSS support

> 

> Sunday, May 13, 2018 4:28 PM, Xueming(Steven) Li:

> > Thanks for fixing this, one minor issue below.

> >

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

> > > From: Shahaf Shuler <shahafs@mellanox.com>

> > > Sent: Sunday, May 13, 2018 4:08 PM

> > > To: Nélio Laranjeiro <nelio.laranjeiro@6wind.com>; Adrien Mazarguil

> > > <adrien.mazarguil@6wind.com>; Yongseok Koh <yskoh@mellanox.com>

> > > Cc: dev@dpdk.org; Xueming(Steven) Li <xuemingl@mellanox.com>

> > > Subject: [PATCH] net/mlx5: fix compilation without tunnel RSS

> > > support

> > >

> > > IBV_RX_HASH_INNER should be referenced only when having tunnel

> > support in the Verbs headers.

> > >

> > > Fixes: 80f2d0ed7ff9 ("net/mlx5: add hardware flow debug dump")

> > > Cc: xuemingl@mellanox.com

> > >

> > > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>


Applied to next-net-mlx, thanks.
  

Patch

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index ec6d00f21b..04ace3ee79 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -2188,7 +2188,12 @@  mlx5_flow_dump(struct rte_eth_dev *dev __rte_unused,
 	uint16_t j;
 	char buf[256];
 	uint8_t off;
+	uint64_t extra_hash_fields = 0;
 
+#ifdef HAVE_IBV_DEVICE_TUNNEL_SUPPORT
+	if (flow->tunnel && flow->rss_conf.level > 1)
+		extra_hash_fields = (uint32_t)IBV_RX_HASH_INNER;
+#endif
 	spec_ptr = (uintptr_t)(flow->frxq[hrxq_idx].ibv_attr + 1);
 	for (j = 0, off = 0; j < flow->frxq[hrxq_idx].ibv_attr->num_of_specs;
 	     j++) {
@@ -2205,9 +2210,7 @@  mlx5_flow_dump(struct rte_eth_dev *dev __rte_unused,
 		(void *)flow->frxq[hrxq_idx].hrxq,
 		(void *)flow->frxq[hrxq_idx].hrxq->qp,
 		(void *)flow->frxq[hrxq_idx].hrxq->ind_table,
-		flow->frxq[hrxq_idx].hash_fields |
-		(flow->tunnel &&
-		 flow->rss_conf.level > 1 ? (uint32_t)IBV_RX_HASH_INNER : 0),
+		(flow->frxq[hrxq_idx].hash_fields | extra_hash_fields),
 		flow->rss_conf.queue_num,
 		flow->frxq[hrxq_idx].ibv_attr->num_of_specs,
 		flow->frxq[hrxq_idx].ibv_attr->size,