ice: add support for virtchnl_queue_select.[tx|rx]_queues bitmap
The VF driver can call VIRTCHNL_OP_[ENABLE|DISABLE]_QUEUES separately for each queue. Add support for virtchnl_queue_select.[tx|rx]_queues bitmap which is used to indicate which queues to enable and disable. Add tracing of VF Tx/Rx per queue enable state to avoid enabling enabled queues and disabling disabled queues. Add total queues enabled count and clear ICE_VF_STATE_QS_ENA when count is zero. Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com> Signed-off-by: Peng Huang <peng.huang@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>
This commit is contained in:
committed by
Jeff Kirsher
parent
d02f734cb7
commit
77ca27c417
@ -196,7 +196,10 @@ static int ice_pf_rxq_wait(struct ice_pf *pf, int pf_q, bool ena)
|
||||
* @ena: start or stop the Rx rings
|
||||
* @rxq_idx: Rx queue index
|
||||
*/
|
||||
static int ice_vsi_ctrl_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx)
|
||||
#ifndef CONFIG_PCI_IOV
|
||||
static
|
||||
#endif /* !CONFIG_PCI_IOV */
|
||||
int ice_vsi_ctrl_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx)
|
||||
{
|
||||
int pf_q = vsi->rxq_map[rxq_idx];
|
||||
struct ice_pf *pf = vsi->back;
|
||||
@ -2105,7 +2108,10 @@ void ice_trigger_sw_intr(struct ice_hw *hw, struct ice_q_vector *q_vector)
|
||||
* @ring: Tx ring to be stopped
|
||||
* @txq_meta: Meta data of Tx ring to be stopped
|
||||
*/
|
||||
static int
|
||||
#ifndef CONFIG_PCI_IOV
|
||||
static
|
||||
#endif /* !CONFIG_PCI_IOV */
|
||||
int
|
||||
ice_vsi_stop_tx_ring(struct ice_vsi *vsi, enum ice_disq_rst_src rst_src,
|
||||
u16 rel_vmvf_num, struct ice_ring *ring,
|
||||
struct ice_txq_meta *txq_meta)
|
||||
@ -2165,7 +2171,10 @@ ice_vsi_stop_tx_ring(struct ice_vsi *vsi, enum ice_disq_rst_src rst_src,
|
||||
* Set up a helper struct that will contain all the necessary fields that
|
||||
* are needed for stopping Tx queue
|
||||
*/
|
||||
static void
|
||||
#ifndef CONFIG_PCI_IOV
|
||||
static
|
||||
#endif /* !CONFIG_PCI_IOV */
|
||||
void
|
||||
ice_fill_txq_meta(struct ice_vsi *vsi, struct ice_ring *ring,
|
||||
struct ice_txq_meta *txq_meta)
|
||||
{
|
||||
|
Reference in New Issue
Block a user