ice: Set up Tx scheduling tree based on alloc VSI Tx queues
authorAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
Wed, 26 Jun 2019 09:20:20 +0000 (02:20 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 31 Jul 2019 20:40:35 +0000 (13:40 -0700)
This patch uses allocated number of Tx queues per VSI to set up its
scheduling tree instead of using total number of available Tx queues.
Only PF VSIs have total number of allocated Tx queues equal to number
of available Tx queues, other VSIs have different number of queues
configured.

Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ice/ice_lib.c

index 01f38ab..e284782 100644 (file)
@@ -2511,7 +2511,7 @@ ice_vsi_setup(struct ice_pf *pf, struct ice_port_info *pi,
 
        /* configure VSI nodes based on number of queues and TC's */
        for (i = 0; i < vsi->tc_cfg.numtc; i++)
-               max_txqs[i] = pf->num_lan_tx;
+               max_txqs[i] = vsi->alloc_txq;
 
        status = ice_cfg_vsi_lan(vsi->port_info, vsi->idx, vsi->tc_cfg.ena_tc,
                                 max_txqs);
@@ -3020,7 +3020,7 @@ int ice_vsi_rebuild(struct ice_vsi *vsi)
 
        /* configure VSI nodes based on number of queues and TC's */
        for (i = 0; i < vsi->tc_cfg.numtc; i++)
-               max_txqs[i] = pf->num_lan_tx;
+               max_txqs[i] = vsi->alloc_txq;
 
        status = ice_cfg_vsi_lan(vsi->port_info, vsi->idx, vsi->tc_cfg.ena_tc,
                                 max_txqs);
@@ -3137,7 +3137,7 @@ int ice_vsi_cfg_tc(struct ice_vsi *vsi, u8 ena_tc)
                if (ena_tc & BIT(i))
                        num_tc++;
                /* populate max_txqs per TC */
-               max_txqs[i] = pf->num_lan_tx;
+               max_txqs[i] = vsi->alloc_txq;
        }
 
        vsi->tc_cfg.ena_tc = ena_tc;