[dpdk-dev] [dpdk-stable] [PATCH] net/failsafe: report valid RSS RETA size
Ferruh Yigit
ferruh.yigit at intel.com
Tue Jun 2 20:10:25 CEST 2020
On 5/27/2020 11:02 PM, Stephen Hemminger wrote:
> 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>
>
Applied to dpdk-next-net/master, thanks.
More information about the dev
mailing list