ice: Add reg_idx variable in ice_q_vector structure
Every time we want to re-enable interrupts and/or write to a register that requires an interrupt vector's hardware index we do the following: vsi->hw_base_vector + q_vector->v_idx This is a wasteful operation, especially in the hot path. Fix this by adding a u16 reg_idx member to the ice_q_vector structure and make the necessary changes to make this work. Signed-off-by: Brett Creeley <brett.creeley@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@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
8d7189d266
commit
b07833a00d
@@ -297,6 +297,7 @@ struct ice_q_vector {
|
||||
struct ice_vsi *vsi;
|
||||
|
||||
u16 v_idx; /* index in the vsi->q_vector array. */
|
||||
u16 reg_idx;
|
||||
u8 num_ring_rx; /* total number of Rx rings in vector */
|
||||
u8 num_ring_tx; /* total number of Tx rings in vector */
|
||||
u8 itr_countdown; /* when 0 should adjust adaptive ITR */
|
||||
@@ -403,7 +404,7 @@ static inline void
|
||||
ice_irq_dynamic_ena(struct ice_hw *hw, struct ice_vsi *vsi,
|
||||
struct ice_q_vector *q_vector)
|
||||
{
|
||||
u32 vector = (vsi && q_vector) ? vsi->hw_base_vector + q_vector->v_idx :
|
||||
u32 vector = (vsi && q_vector) ? q_vector->reg_idx :
|
||||
((struct ice_pf *)hw->back)->hw_oicr_idx;
|
||||
int itr = ICE_ITR_NONE;
|
||||
u32 val;
|
||||
|
Reference in New Issue
Block a user