Hi Xuting, Thanks for your reply. It's very efficient for CVL. But the FVL PF provides default 4 queue pairs to VF, if every VF request 16 queue pairs, there may be not enough queues pairs for all VFs.
BR, Alvin > -----Original Message----- > From: Xu, Ting <ting...@intel.com> > Sent: Wednesday, December 23, 2020 2:06 PM > To: Zhang, AlvinX <alvinx.zh...@intel.com>; Xing, Beilei > <beilei.x...@intel.com> > Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zh...@intel.com>; sta...@dpdk.org > Subject: RE: [PATCH] net/iavf: fix queue pairs configuration > > Hi, Alvin, > > > -----Original Message----- > > From: Zhang,Alvin <alvinx.zh...@intel.com> > > Sent: Wednesday, December 23, 2020 1:30 PM > > To: Xing, Beilei <beilei.x...@intel.com>; Xu, Ting <ting...@intel.com> > > Cc: dev@dpdk.org; Zhang, AlvinX <alvinx.zh...@intel.com>; > > sta...@dpdk.org > > Subject: [PATCH] net/iavf: fix queue pairs configuration > > > > From: Alvin Zhang <alvinx.zh...@intel.com> > > > > Check if there are enough queue pairs currently allocated, and if not, > > request PF to allocate them. > > > > Fixes: e436cd43835b ("net/iavf: negotiate large VF and request more > > queues") > > Cc: sta...@dpdk.org > > > > Signed-off-by: Alvin Zhang <alvinx.zh...@intel.com> > > --- > > drivers/net/iavf/iavf_ethdev.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/iavf/iavf_ethdev.c > > b/drivers/net/iavf/iavf_ethdev.c index 7e3c26a..f015121 100644 > > --- a/drivers/net/iavf/iavf_ethdev.c > > +++ b/drivers/net/iavf/iavf_ethdev.c > > @@ -372,8 +372,10 @@ struct rte_iavf_xstats_name_off { > > } else { > > /* Check if large VF is already enabled. If so, disable and > > * release redundant queue resource. > > + * Or check if enough queue pairs. If not, request them from > > PF. > > */ > > - if (vf->lv_enabled) { > > + if (vf->lv_enabled || > > + num_queue_pairs > vf->vsi_res->num_queue_pairs) { > > ret = iavf_queues_req_reset(dev, num_queue_pairs); > > if (ret) > > return ret; > > -- > > 1.8.3.1 > > Will it be better to change ret = iavf_queues_req_reset(dev, num_queue_pairs); > to ret = iavf_queues_req_reset(dev, IAVF_MAX_NUM_QUEUES_DFLT); based on > the original codes? > Since PF provides default 16 queue pairs to VF. If large VF is no need to be > enabled, it may be better to reset the queue pairs number to 16. So that we > don't need to compare the queue pairs number and request queues each time > when it is no more than 16. If more, it turns to large VF to handle. > The original codes here are not good. > Thanks.