Message ID | 1605208207-1896-13-git-send-email-tlfalcon@linux.ibm.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ibmvnic: Performance improvements and other updates | expand |
On 2020-11-12 11:10, Thomas Falcon wrote: > From: "Dwip N. Banerjee" <dnbanerg@us.ibm.com> > > Reduce the amount of time spent replenishing RX buffers by > only doing so once available buffers has fallen under a certain > threshold, in this case half of the total number of buffers, or > if the polling loop exits before the packets processed is less > than its budget. > > Signed-off-by: Dwip N. Banerjee <dnbanerg@us.ibm.com> Acked-by: Dany Madden <drt@linux.ibm.com> > --- > drivers/net/ethernet/ibm/ibmvnic.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/ibm/ibmvnic.c > b/drivers/net/ethernet/ibm/ibmvnic.c > index 0791dbf1cba8..66f8068bee5a 100644 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@ -2476,7 +2476,10 @@ static int ibmvnic_poll(struct napi_struct > *napi, int budget) > frames_processed++; > } > > - if (adapter->state != VNIC_CLOSING) > + if (adapter->state != VNIC_CLOSING && > + ((atomic_read(&adapter->rx_pool[scrq_num].available) < > + adapter->req_rx_add_entries_per_subcrq / 2) || > + frames_processed < budget)) > replenish_rx_pool(adapter, &adapter->rx_pool[scrq_num]); > if (frames_processed < budget) { > if (napi_complete_done(napi, frames_processed)) {
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 0791dbf1cba8..66f8068bee5a 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -2476,7 +2476,10 @@ static int ibmvnic_poll(struct napi_struct *napi, int budget) frames_processed++; } - if (adapter->state != VNIC_CLOSING) + if (adapter->state != VNIC_CLOSING && + ((atomic_read(&adapter->rx_pool[scrq_num].available) < + adapter->req_rx_add_entries_per_subcrq / 2) || + frames_processed < budget)) replenish_rx_pool(adapter, &adapter->rx_pool[scrq_num]); if (frames_processed < budget) { if (napi_complete_done(napi, frames_processed)) {