mirror of https://gitee.com/openkylin/linux.git
ice: Assume that more than one Rx queue is rare in ice_napi_poll
Currently we divide budget by the number of Rx queues per Rx ring container in ice_napi_poll even if there is only 1. This is an unnecessary divide for the normal case of 1 Rx ring per Rx ring container. Fix this by using an unlikely() call in the case where we actually need to divide. Also, we will always set budget_per_ring even if there are no Rx rings in the Rx ring container so we don't need to initialize it to 0. Signed-off-by: Brett Creeley <brett.creeley@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:
parent
c1ddf1f5c4
commit
9118fcd525
|
@ -1414,8 +1414,8 @@ int ice_napi_poll(struct napi_struct *napi, int budget)
|
|||
container_of(napi, struct ice_q_vector, napi);
|
||||
struct ice_vsi *vsi = q_vector->vsi;
|
||||
bool clean_complete = true;
|
||||
int budget_per_ring = 0;
|
||||
struct ice_ring *ring;
|
||||
int budget_per_ring;
|
||||
int work_done = 0;
|
||||
|
||||
/* Since the actual Tx work is minimal, we can give the Tx a larger
|
||||
|
@ -1429,11 +1429,16 @@ int ice_napi_poll(struct napi_struct *napi, int budget)
|
|||
if (budget <= 0)
|
||||
return budget;
|
||||
|
||||
/* We attempt to distribute budget to each Rx queue fairly, but don't
|
||||
* allow the budget to go below 1 because that would exit polling early.
|
||||
*/
|
||||
if (q_vector->num_ring_rx)
|
||||
/* normally we have 1 Rx ring per q_vector */
|
||||
if (unlikely(q_vector->num_ring_rx > 1))
|
||||
/* We attempt to distribute budget to each Rx queue fairly, but
|
||||
* don't allow the budget to go below 1 because that would exit
|
||||
* polling early.
|
||||
*/
|
||||
budget_per_ring = max(budget / q_vector->num_ring_rx, 1);
|
||||
else
|
||||
/* Max of 1 Rx ring in this q_vector so give it the budget */
|
||||
budget_per_ring = budget;
|
||||
|
||||
ice_for_each_ring(ring, q_vector->rx) {
|
||||
int cleaned;
|
||||
|
|
Loading…
Reference in New Issue