]> git.droids-corp.org - dpdk.git/commitdiff
net/qede: restrict maximum queues for PF/VF
authorHarish Patil <harish.patil@qlogic.com>
Fri, 23 Dec 2016 00:48:11 +0000 (16:48 -0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 17 Jan 2017 18:40:52 +0000 (19:40 +0100)
HW can support up to 128 queues based on the NIC config/personality.
But most of the testing is done with 32 queues for PF and 16 for VF
device across different qede devices, so change here is to advertise
only those many instead of returning max queues supported by HW.

Fixes: 2ea6f76aff40 ("qede: add core driver")
Signed-off-by: Harish Patil <harish.patil@qlogic.com>
drivers/net/qede/qede_ethdev.c
drivers/net/qede/qede_ethdev.h
drivers/net/qede/qede_main.c

index b5fa1a2e6af5e0934cffbf6bacb966074d5a0c47..258c599fb03df718808853dffcb293046b4b9988 100644 (file)
@@ -974,8 +974,15 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
        dev_info->max_rx_pktlen = (uint32_t)ETH_TX_MAX_NON_LSO_PKT_LEN;
        dev_info->rx_desc_lim = qede_rx_desc_lim;
        dev_info->tx_desc_lim = qede_tx_desc_lim;
-       dev_info->max_rx_queues = (uint16_t)QEDE_MAX_RSS_CNT(qdev);
+
+       if (IS_PF(edev))
+               dev_info->max_rx_queues = (uint16_t)RTE_MIN(
+                       QEDE_MAX_RSS_CNT(qdev), QEDE_PF_NUM_CONNS / 2);
+       else
+               dev_info->max_rx_queues = (uint16_t)RTE_MIN(
+                       QEDE_MAX_RSS_CNT(qdev), ECORE_MAX_VF_CHAINS_PER_PF);
        dev_info->max_tx_queues = dev_info->max_rx_queues;
+
        dev_info->max_mac_addrs = qdev->dev_info.num_mac_addrs;
        dev_info->max_vfs = 0;
        dev_info->reta_size = ECORE_RSS_IND_TABLE_SIZE;
@@ -2020,9 +2027,9 @@ static const struct eth_dev_ops qede_eth_vf_dev_ops = {
 static void qede_update_pf_params(struct ecore_dev *edev)
 {
        struct ecore_pf_params pf_params;
-       /* 32 rx + 32 tx */
+
        memset(&pf_params, 0, sizeof(struct ecore_pf_params));
-       pf_params.eth_pf_params.num_cons = 64;
+       pf_params.eth_pf_params.num_cons = QEDE_PF_NUM_CONNS;
        qed_ops->common->update_pf_params(edev, &pf_params);
 }
 
index bd85ba3e81923a25635b906245e2887f05ea1761..95e06ef0f1df730626900479d970287b9df86c3c 100644 (file)
 
 extern char fw_file[];
 
+/* Number of PF connections - 32 RX + 32 TX */
+#define QEDE_PF_NUM_CONNS              (64)
+
 /* Port/function states */
 enum qede_dev_state {
        QEDE_DEV_INIT, /* Init the chip and Slowpath */
index b76967314ce6e58e5468f99b6e2d44afa6878abc..491c9210ab7b80f6fa9b82be68e389626d01b395 100644 (file)
@@ -402,11 +402,6 @@ qed_fill_eth_dev_info(struct ecore_dev *edev, struct qed_dev_eth_info *info)
                if (edev->num_hwfns > 1) {
                        ecore_vf_get_num_rxqs(&edev->hwfns[1], &queues);
                        info->num_queues += queues;
-                       /* Restrict 100G VF to advertise 16 queues till the
-                        * required support is available to go beyond 16.
-                        */
-                       info->num_queues = RTE_MIN(info->num_queues,
-                                                  ECORE_MAX_VF_CHAINS_PER_PF);
                }
 
                ecore_vf_get_num_vlan_filters(&edev->hwfns[0],