[dpdk-dev] [PATCH] net/failsafe: report valid RSS RETA size

Stephen Hemminger stephen at networkplumber.org
Thu May 28 00:02:32 CEST 2020


On Wed, 27 May 2020 23:35:25 +0200
Gaëtan Rivet <grive at u256.net> wrote:

> On 27/05/20 18:30 +0300, Andrew Rybchenko wrote:
> > On 5/27/20 6:07 PM, Gaëtan Rivet wrote:  
> > > On 27/05/20 15:34 +0100, Andrew Rybchenko wrote:  
> > >> From: Ian Dolzhansky <ian.dolzhansky at oktetlabs.ru>
> > >>
> > >> Failsafe driver has been indicating zero for RSS redirection table size
> > >> after device info reporting had been reworked. Report proper value.
> > >>
> > >> Fixes: 4586be3743d4 ("net/failsafe: fix reported device info")
> > >> Cc: Stephen Hemminger <sthemmin at microsoft.com>
> > >> Cc: stable at dpdk.org
> > >>
> > >> Signed-off-by: Ian Dolzhansky <ian.dolzhansky at oktetlabs.ru>
> > >> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
> > >> ---
> > >>  drivers/net/failsafe/failsafe_ops.c | 8 ++++++++
> > >>  1 file changed, 8 insertions(+)
> > >>
> > >> diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
> > >> index e046cfe6aa..45da9378c3 100644
> > >> --- a/drivers/net/failsafe/failsafe_ops.c
> > >> +++ b/drivers/net/failsafe/failsafe_ops.c
> > >> @@ -1068,6 +1068,13 @@ fs_dev_merge_info(struct rte_eth_dev_info *info,
> > >>  	info->rx_queue_offload_capa &= sinfo->rx_queue_offload_capa;
> > >>  	info->tx_queue_offload_capa &= sinfo->tx_queue_offload_capa;
> > >>  	info->flow_type_rss_offloads &= sinfo->flow_type_rss_offloads;
> > >> +
> > >> +	/*
> > >> +	 * RETA size is a GCD of RETA sizes indicated by sub-devices.
> > >> +	 * Each of these sizes is a power of 2, so use the lower one.
> > >> +	 */
> > >> +	info->reta_size = RTE_MIN(info->reta_size, sinfo->reta_size);
> > >> +
> > >>  	info->hash_key_size = RTE_MIN(info->hash_key_size,
> > >>  				      sinfo->hash_key_size);
> > >>  
> > >> @@ -1128,6 +1135,7 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
> > >>  	infos->max_hash_mac_addrs = UINT32_MAX;
> > >>  	infos->max_vfs = UINT16_MAX;
> > >>  	infos->max_vmdq_pools = UINT16_MAX;
> > >> +	infos->reta_size = UINT16_MAX;
> > >>  	infos->hash_key_size = UINT8_MAX;
> > >>  
> > >>  	/*
> > >> -- 
> > >> 2.17.1
> > >>  
> > > 
> > > Hello Andrew, Ian,
> > > 
> > > The reta_size info is linked to being able to update the RSS RETA.
> > > 
> > > I don't think it is a bug for the moment to report 0, as long as
> > > failsafe does not support RETA update. Now, the reta_update ops could be
> > > quickly implemented in failsafe, but that should be a new feature.
> > > 
> > > Did you hit an issue with it?  
> > 
> > Hello Gaetan,
> > 
> > in our case reta_size is required for RSS testing even if there
> > is no reta update and query API to estimate where a packet
> > should be delivered. It assumes that default reta spreads over
> > all Rx queue evenly. I.e. we need reta size and number of Rx
> > queues to built default reta.
> > 
> > May be it is really very testing specific, but IMO logical
> > anyway.
> > 
> > Andrew.  
> 
> Alright, given the size of the change there is no reason not to add it
> if it can improve consistency.
> 
> I think the patch is fine otherwise, I'm just not sure it should be
> marked as a bug fix, but backporting won't be hard.
> 
> Thanks,
> 
> Acked-by: Gaetan Rivet <grive at u256.net>
> 

Agreed, looks good to me, but probably doesn't matter much. Almost all hardware
only supports one reta_size anyway.

Acked-by: Stephen Hemminger <stephen at networkplumber.org>


More information about the dev mailing list