[dpdk-stable] [PATCH] net/iavf: fix queue pairs configuration

Xu, Ting ting.xu at intel.com
Wed Dec 23 07:06:25 CET 2020


Hi, Alvin,

> -----Original Message-----
> From: Zhang,Alvin <alvinx.zhang at intel.com>
> Sent: Wednesday, December 23, 2020 1:30 PM
> To: Xing, Beilei <beilei.xing at intel.com>; Xu, Ting <ting.xu at intel.com>
> Cc: dev at dpdk.org; Zhang, AlvinX <alvinx.zhang at intel.com>; stable at dpdk.org
> Subject: [PATCH] net/iavf: fix queue pairs configuration
> 
> From: Alvin Zhang <alvinx.zhang at 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: stable at dpdk.org
> 
> Signed-off-by: Alvin Zhang <alvinx.zhang at 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.


More information about the stable mailing list