All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] net/qede: fix L2-handles used for RSS hash update
@ 2018-06-01 17:16 Rasesh Mody
  2018-06-05 13:39 ` Kevin Traynor
  2018-06-05 23:03 ` [PATCH v2] " Rasesh Mody
  0 siblings, 2 replies; 8+ messages in thread
From: Rasesh Mody @ 2018-06-01 17:16 UTC (permalink / raw)
  To: dev; +Cc: Rasesh Mody, ferruh.yigit, Dept-EngDPDKDev, stable

Fix fast path array index which is used for passing L2 handles to RSS
indirection table. Currently, it is using the local copy of indirection
table. When the RX queue configuration changes the local copy becomes
invalid.

Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS configuration")
Cc: stable@dpdk.org

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
 drivers/net/qede/qede_ethdev.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 3206cc6..6e9e76d 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
 	vport_update_params.vport_id = 0;
 	/* pass the L2 handles instead of qids */
 	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
-		idx = qdev->rss_ind_table[i];
+		idx = ECORE_RSS_IND_TABLE_SIZE % QEDE_RSS_COUNT(qdev);
 		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq->handle;
 	}
 	vport_update_params.rss_params = &rss_params;
-- 
1.7.10.3

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

* Re: [PATCH] net/qede: fix L2-handles used for RSS hash update
  2018-06-01 17:16 [PATCH] net/qede: fix L2-handles used for RSS hash update Rasesh Mody
@ 2018-06-05 13:39 ` Kevin Traynor
  2018-06-05 16:16   ` Mody, Rasesh
  2018-06-05 23:03 ` [PATCH v2] " Rasesh Mody
  1 sibling, 1 reply; 8+ messages in thread
From: Kevin Traynor @ 2018-06-05 13:39 UTC (permalink / raw)
  To: Rasesh Mody, dev; +Cc: ferruh.yigit, Dept-EngDPDKDev, stable

On 06/01/2018 06:16 PM, Rasesh Mody wrote:
> Fix fast path array index which is used for passing L2 handles to RSS
> indirection table. Currently, it is using the local copy of indirection
> table. When the RX queue configuration changes the local copy becomes
> invalid.
> 
> Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS configuration")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
> ---
>  drivers/net/qede/qede_ethdev.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
> index 3206cc6..6e9e76d 100644
> --- a/drivers/net/qede/qede_ethdev.c
> +++ b/drivers/net/qede/qede_ethdev.c
> @@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
>  	vport_update_params.vport_id = 0;
>  	/* pass the L2 handles instead of qids */
>  	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
> -		idx = qdev->rss_ind_table[i];
> +		idx = ECORE_RSS_IND_TABLE_SIZE % QEDE_RSS_COUNT(qdev);
>  		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq->handle;

hi, idx never changes in the loop, so the same rxq handle is in every
rss_ind_table entry - is it right?

>  	}
>  	vport_update_params.rss_params = &rss_params;
> 

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

* Re: [PATCH] net/qede: fix L2-handles used for RSS hash update
  2018-06-05 13:39 ` Kevin Traynor
@ 2018-06-05 16:16   ` Mody, Rasesh
  2018-06-05 16:41     ` Kevin Traynor
  0 siblings, 1 reply; 8+ messages in thread
From: Mody, Rasesh @ 2018-06-05 16:16 UTC (permalink / raw)
  To: Kevin Traynor, dev; +Cc: ferruh.yigit, Dept-Eng DPDK Dev, stable

> From: Kevin Traynor [mailto:ktraynor@redhat.com]
> Sent: Tuesday, June 05, 2018 6:40 AM
> 
> On 06/01/2018 06:16 PM, Rasesh Mody wrote:
> > Fix fast path array index which is used for passing L2 handles to RSS
> > indirection table. Currently, it is using the local copy of
> > indirection table. When the RX queue configuration changes the local
> > copy becomes invalid.
> >
> > Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS
> > configuration")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
> > ---
> >  drivers/net/qede/qede_ethdev.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/qede/qede_ethdev.c
> > b/drivers/net/qede/qede_ethdev.c index 3206cc6..6e9e76d 100644
> > --- a/drivers/net/qede/qede_ethdev.c
> > +++ b/drivers/net/qede/qede_ethdev.c
> > @@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev
> *eth_dev,
> >  	vport_update_params.vport_id = 0;
> >  	/* pass the L2 handles instead of qids */
> >  	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
> > -		idx = qdev->rss_ind_table[i];
> > +		idx = ECORE_RSS_IND_TABLE_SIZE %
> QEDE_RSS_COUNT(qdev);
> >  		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq-
> >handle;
> 
> hi, idx never changes in the loop, so the same rxq handle is in every
> rss_ind_table entry - is it right?

The idx depends on number of RXQs. If a single RXQ is configured then idx does not change in the loop,  in which case same RXQ handle is in every entry.

Thanks!
-Rasesh
> 
> >  	}
> >  	vport_update_params.rss_params = &rss_params;
> >


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

* Re: [PATCH] net/qede: fix L2-handles used for RSS hash update
  2018-06-05 16:16   ` Mody, Rasesh
@ 2018-06-05 16:41     ` Kevin Traynor
  2018-06-05 17:14       ` Mody, Rasesh
  0 siblings, 1 reply; 8+ messages in thread
From: Kevin Traynor @ 2018-06-05 16:41 UTC (permalink / raw)
  To: Mody, Rasesh, dev; +Cc: ferruh.yigit, Dept-Eng DPDK Dev, stable

On 06/05/2018 05:16 PM, Mody, Rasesh wrote:
>> From: Kevin Traynor [mailto:ktraynor@redhat.com]
>> Sent: Tuesday, June 05, 2018 6:40 AM
>>
>> On 06/01/2018 06:16 PM, Rasesh Mody wrote:
>>> Fix fast path array index which is used for passing L2 handles to RSS
>>> indirection table. Currently, it is using the local copy of
>>> indirection table. When the RX queue configuration changes the local
>>> copy becomes invalid.
>>>
>>> Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS
>>> configuration")
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
>>> ---
>>>  drivers/net/qede/qede_ethdev.c |    2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/net/qede/qede_ethdev.c
>>> b/drivers/net/qede/qede_ethdev.c index 3206cc6..6e9e76d 100644
>>> --- a/drivers/net/qede/qede_ethdev.c
>>> +++ b/drivers/net/qede/qede_ethdev.c
>>> @@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev
>> *eth_dev,
>>>  	vport_update_params.vport_id = 0;
>>>  	/* pass the L2 handles instead of qids */
>>>  	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
>>> -		idx = qdev->rss_ind_table[i];
>>> +		idx = ECORE_RSS_IND_TABLE_SIZE %
>> QEDE_RSS_COUNT(qdev);
>>>  		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq-
>>> handle;
>>
>> hi, idx never changes in the loop, so the same rxq handle is in every
>> rss_ind_table entry - is it right?
> 
> The idx depends on number of RXQs. If a single RXQ is configured then idx does not change in the loop,  in which case same RXQ handle is in every entry.

The value depends on number of Rxqs, but that value will not change for
each of 128 iterations *regardless* of the number of Rxq's configured
(assuming that will be static during the loop). Perhaps that's what you
want, but it looks odd to be calculating the idx in each loop iteration
when it won't change.

idx = ECORE_RSS_IND_TABLE_SIZE % QEDE_RSS_COUNT(qdev)

=>

idx = 128 % qdev->num_rx_queues

> 
> Thanks!
> -Rasesh
>>
>>>  	}
>>>  	vport_update_params.rss_params = &rss_params;
>>>
> 

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

* Re: [PATCH] net/qede: fix L2-handles used for RSS hash update
  2018-06-05 16:41     ` Kevin Traynor
@ 2018-06-05 17:14       ` Mody, Rasesh
  0 siblings, 0 replies; 8+ messages in thread
From: Mody, Rasesh @ 2018-06-05 17:14 UTC (permalink / raw)
  To: Kevin Traynor, dev; +Cc: ferruh.yigit, Dept-Eng DPDK Dev, stable

> From: Kevin Traynor [mailto:ktraynor@redhat.com]
> Sent: Tuesday, June 05, 2018 9:42 AM
> 
> On 06/05/2018 05:16 PM, Mody, Rasesh wrote:
> >> From: Kevin Traynor [mailto:ktraynor@redhat.com]
> >> Sent: Tuesday, June 05, 2018 6:40 AM
> >>
> >> On 06/01/2018 06:16 PM, Rasesh Mody wrote:
> >>> Fix fast path array index which is used for passing L2 handles to
> >>> RSS indirection table. Currently, it is using the local copy of
> >>> indirection table. When the RX queue configuration changes the local
> >>> copy becomes invalid.
> >>>
> >>> Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS
> >>> configuration")
> >>> Cc: stable@dpdk.org
> >>>
> >>> Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
> >>> ---
> >>>  drivers/net/qede/qede_ethdev.c |    2 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/drivers/net/qede/qede_ethdev.c
> >>> b/drivers/net/qede/qede_ethdev.c index 3206cc6..6e9e76d 100644
> >>> --- a/drivers/net/qede/qede_ethdev.c
> >>> +++ b/drivers/net/qede/qede_ethdev.c
> >>> @@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev
> >> *eth_dev,
> >>>  	vport_update_params.vport_id = 0;
> >>>  	/* pass the L2 handles instead of qids */
> >>>  	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
> >>> -		idx = qdev->rss_ind_table[i];
> >>> +		idx = ECORE_RSS_IND_TABLE_SIZE %
> >> QEDE_RSS_COUNT(qdev);
> >>>  		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq-
> handle;
> >>
> >> hi, idx never changes in the loop, so the same rxq handle is in every
> >> rss_ind_table entry - is it right?
> >
> > The idx depends on number of RXQs. If a single RXQ is configured then idx
> does not change in the loop,  in which case same RXQ handle is in every
> entry.
> 
> The value depends on number of Rxqs, but that value will not change for
> each of 128 iterations *regardless* of the number of Rxq's configured
> (assuming that will be static during the loop). Perhaps that's what you want,
> but it looks odd to be calculating the idx in each loop iteration when it won't
> change.

I see what you are saying, will send a revised patch, thanks.

> 
> idx = ECORE_RSS_IND_TABLE_SIZE % QEDE_RSS_COUNT(qdev)
> 
> =>
> 
> idx = 128 % qdev->num_rx_queues
> 
> >
> > Thanks!
> > -Rasesh
> >>
> >>>  	}
> >>>  	vport_update_params.rss_params = &rss_params;
> >>>
> >


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

* [PATCH v2] net/qede: fix L2-handles used for RSS hash update
  2018-06-01 17:16 [PATCH] net/qede: fix L2-handles used for RSS hash update Rasesh Mody
  2018-06-05 13:39 ` Kevin Traynor
@ 2018-06-05 23:03 ` Rasesh Mody
  2018-06-06 11:11   ` Kevin Traynor
  2018-06-06 18:40   ` Ferruh Yigit
  1 sibling, 2 replies; 8+ messages in thread
From: Rasesh Mody @ 2018-06-05 23:03 UTC (permalink / raw)
  To: dev; +Cc: Rasesh Mody, ktraynor, ferruh.yigit, Dept-EngDPDKDev, stable

Fix fast path array index which is used for passing L2 handles to RSS
indirection table, properly distribute rxq handles for indirection table.
Currently, it is using the local copy of indirection table. When the RX
queue configuration changes the local copy becomes invalid.

Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS configuration")
Cc: stable@dpdk.org

Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
Reviewed-by: Kevin Traynor <ktraynor@redhat.com>
---
 drivers/net/qede/qede_ethdev.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 3206cc6..5a4071b 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
 	vport_update_params.vport_id = 0;
 	/* pass the L2 handles instead of qids */
 	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
-		idx = qdev->rss_ind_table[i];
+		idx = i % QEDE_RSS_COUNT(qdev);
 		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq->handle;
 	}
 	vport_update_params.rss_params = &rss_params;
-- 
1.7.10.3

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

* Re: [PATCH v2] net/qede: fix L2-handles used for RSS hash update
  2018-06-05 23:03 ` [PATCH v2] " Rasesh Mody
@ 2018-06-06 11:11   ` Kevin Traynor
  2018-06-06 18:40   ` Ferruh Yigit
  1 sibling, 0 replies; 8+ messages in thread
From: Kevin Traynor @ 2018-06-06 11:11 UTC (permalink / raw)
  To: Rasesh Mody, dev; +Cc: ferruh.yigit, Dept-EngDPDKDev, stable

On 06/06/2018 12:03 AM, Rasesh Mody wrote:
> Fix fast path array index which is used for passing L2 handles to RSS
> indirection table, properly distribute rxq handles for indirection table.
> Currently, it is using the local copy of indirection table. When the RX
> queue configuration changes the local copy becomes invalid.
> 
> Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS configuration")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
> Reviewed-by: Kevin Traynor <ktraynor@redhat.com>

LGTM

> ---
>  drivers/net/qede/qede_ethdev.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
> index 3206cc6..5a4071b 100644
> --- a/drivers/net/qede/qede_ethdev.c
> +++ b/drivers/net/qede/qede_ethdev.c
> @@ -2210,7 +2210,7 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
>  	vport_update_params.vport_id = 0;
>  	/* pass the L2 handles instead of qids */
>  	for (i = 0 ; i < ECORE_RSS_IND_TABLE_SIZE ; i++) {
> -		idx = qdev->rss_ind_table[i];
> +		idx = i % QEDE_RSS_COUNT(qdev);
>  		rss_params.rss_ind_table[i] = qdev->fp_array[idx].rxq->handle;
>  	}
>  	vport_update_params.rss_params = &rss_params;
> 

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

* Re: [PATCH v2] net/qede: fix L2-handles used for RSS hash update
  2018-06-05 23:03 ` [PATCH v2] " Rasesh Mody
  2018-06-06 11:11   ` Kevin Traynor
@ 2018-06-06 18:40   ` Ferruh Yigit
  1 sibling, 0 replies; 8+ messages in thread
From: Ferruh Yigit @ 2018-06-06 18:40 UTC (permalink / raw)
  To: Rasesh Mody, dev; +Cc: ktraynor, Dept-EngDPDKDev, stable

On 6/6/2018 12:03 AM, Rasesh Mody wrote:
> Fix fast path array index which is used for passing L2 handles to RSS
> indirection table, properly distribute rxq handles for indirection table.
> Currently, it is using the local copy of indirection table. When the RX
> queue configuration changes the local copy becomes invalid.
> 
> Fixes: 69d7ba88f1a1 ("net/qede/base: use L2-handles for RSS configuration")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
> Reviewed-by: Kevin Traynor <ktraynor@redhat.com>

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

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

end of thread, other threads:[~2018-06-06 18:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-01 17:16 [PATCH] net/qede: fix L2-handles used for RSS hash update Rasesh Mody
2018-06-05 13:39 ` Kevin Traynor
2018-06-05 16:16   ` Mody, Rasesh
2018-06-05 16:41     ` Kevin Traynor
2018-06-05 17:14       ` Mody, Rasesh
2018-06-05 23:03 ` [PATCH v2] " Rasesh Mody
2018-06-06 11:11   ` Kevin Traynor
2018-06-06 18:40   ` Ferruh Yigit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.