[PATCH] net/iavf: initialize large VF setting at startup

Ghalem Boudour ghalem.boudour at 6wind.com
Wed Feb 9 20:26:55 CET 2022


Hi Ting,

The purpose of the correction is to ensure that the rss configuration
is aligned with the number of queues
allocated on the current boot and not impacted by a previous
configuration done in a previous boot.
The rss configuration is only available if VIRTCHNL_VF_OFFLOAD_RSS_PF
is present and that is the reason
that we have set the operation in part of VIRTCHNL_VF_OFFLOAD_RSS_PF.

Nevertheless this operation can be moved outside to be more generic
and also covers iavf_config_irq_map.

On Wed, Feb 9, 2022 at 3:42 AM Xu, Ting <ting.xu at intel.com> wrote:
>
> > -----Original Message-----
> > From: Ghalem Boudour <ghalem.boudour at 6wind.com>
> > Sent: Thursday, February 3, 2022 5:04 PM
> > To: Wu, Jingjing <jingjing.wu at intel.com>; Xing, Beilei <beilei.xing at intel.com>
> > Cc: dev at dpdk.org; Ghalem Boudour <ghalem.boudour at 6wind.com>;
> > Thibaut Collet <thibaut.collet at 6wind.com>; Olivier Matz
> > <olivier.matz at 6wind.com>
> > Subject: [PATCH] net/iavf: initialize large VF setting at startup
> >
> > lv_enabled is used to remember if large VF setting is configured, but its value
> > is not initialized at startup. This can lead to a different configuration
> > regarding the initial configuration of the PF.
> > For example, a first start is done with 8 rx and 8 tx queues. Large VF is not
> > needed and reta size is 64.
> > A second start is done with 20 rx and tx queues. Large VF is required and reta
> > size is 256.
> > A third start is done with 2 rx and tx queues. Large VF is not needed but reta
> > size is 256 as the PF has been configured during the second start.
> >
> > In order to have a consistent behavior regarding reta size whatever the
> > configuration of the PF (may be changed by a previous boot) the lv_enabled
> > must be set properly at the init phase.
> >
> > Signed-off-by: Ghalem Boudour <ghalem.boudour at 6wind.com>
> > Signed-off-by: Thibaut Collet <thibaut.collet at 6wind.com>
> > Reviewed-by: Olivier Matz <olivier.matz at 6wind.com>
> > ---
> >  drivers/net/iavf/iavf_ethdev.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
> > index 79397f15e54f..09410be4b712 100644
> > --- a/drivers/net/iavf/iavf_ethdev.c
> > +++ b/drivers/net/iavf/iavf_ethdev.c
> > @@ -2276,6 +2276,8 @@ iavf_init_vf(struct rte_eth_dev *dev)
> >                       PMD_INIT_LOG(ERR, "unable to allocate rss_lut
> > memory");
> >                       goto err_rss;
> >               }
> > +             if (vf->vsi_res->num_queue_pairs >
> > IAVF_MAX_NUM_QUEUES_DFLT)
> > +                     vf->lv_enabled = true;
>
> Why you put this operation in the part of " VIRTCHNL_VF_OFFLOAD_RSS_PF"?
>
> >       }
> >
> >       if (vf->vf_res->vf_cap_flags &
> > VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC) {
> > --
> > 2.30.2
>


More information about the dev mailing list