[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