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

Andrew Rybchenko arybchenko at solarflare.com
Wed May 27 17:30:29 CEST 2020


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.


More information about the dev mailing list