[dpdk-dev] [PATCH] net/qede: fix L2-handles used for RSS hash update

Mody, Rasesh Rasesh.Mody at cavium.com
Tue Jun 5 19:14:34 CEST 2018


> From: Kevin Traynor [mailto:ktraynor at 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 at 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 at dpdk.org
> >>>
> >>> Signed-off-by: Rasesh Mody <rasesh.mody at 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;
> >>>
> >



More information about the dev mailing list