[dpdk-dev] [PATCH v3 1/2] net/i40e: support VF request more queues

Yan, Zhirun zhirun.yan at intel.com
Fri Dec 14 04:17:35 CET 2018


Hi David,

The i40evf_init_vlan() always returns 0. So the change doesn’t affect it.
I agree with you. So I will put the "int ret" declaration in the new block in next version.

Thanks.

From: David Marchand [mailto:david.marchand at redhat.com]
Sent: Thursday, December 13, 2018 4:26 PM
To: Yan, Zhirun <zhirun.yan at intel.com>
Cc: dev at dpdk.org; Zhang, Qi Z <qi.z.zhang at intel.com>; Wang, Haiyue <haiyue.wang at intel.com>
Subject: Re: [dpdk-dev] [PATCH v3 1/2] net/i40e: support VF request more queues

Hello, Zhirun,

On Thu, Dec 13, 2018 at 7:28 AM Zhirun Yan <zhirun.yan at intel.com<mailto:zhirun.yan at intel.com>> wrote:
@@ -1515,8 +1545,12 @@ RTE_PMD_REGISTER_KMOD_DEP(net_i40e_vf, "* igb_uio | vfio-pci");
 static int
 i40evf_dev_configure(struct rte_eth_dev *dev)
 {
+       struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
        struct i40e_adapter *ad =
                I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
+       uint16_t num_queue_pairs = RTE_MAX(dev->data->nb_rx_queues,
+                               dev->data->nb_tx_queues);
+       int ret = 0;

        /* Initialize to TRUE. If any of Rx queues doesn't meet the bulk
         * allocation or vector Rx preconditions we will reset it.
@@ -1526,7 +1560,21 @@ i40evf_dev_configure(struct rte_eth_dev *dev)
        ad->tx_simple_allowed = true;
        ad->tx_vec_allowed = true;

-       return i40evf_init_vlan(dev);
+       if (num_queue_pairs != vf->vsi_res->num_queue_pairs) {
+               PMD_DRV_LOG(INFO, "change queue pairs from %u to %u",
+                               vf->vsi_res->num_queue_pairs, num_queue_pairs);
+               ret = i40evf_request_queues(dev, num_queue_pairs);
+               if (ret != 0)
+                       return ret;
+
+               ret = i40evf_dev_reset(dev);
+               if (ret != 0)
+                       return ret;
+       }
+
+       i40evf_init_vlan(dev);
+
+       return ret;
 }

 static int

Did not look too much into this code, but I noticed that with this change, you always return 0, whatever happened with i40evf_init_vlan().
I would have put the "int ret" declaration in the new block and left the return i40evf_init_vlan(dev); as is.
Do you have a rationale not to do so ?

--
David Marchand



More information about the dev mailing list