[PATCH net-next 00/10] net: ipa: improve RX buffer replenishing

From: Alex Elder
Date: Thu Feb 03 2022 - 12:09:39 EST


This series revises the algorithm used for replenishing receive
buffers on RX endpoints. Currently there are two atomic variables
that track how many receive buffers can be sent to the hardware.
The new algorithm obviates the need for those, by just assuming we
always want to provide the hardware with buffers until it can hold
no more.

The first patch eliminates an atomic variable that's not required.
The next moves some code into the main replenish function's caller,
making one of the called function's arguments unnecessary. The
next six refactor things a bit more, adding a new helper function
that allows us to eliminate an additional atomic variable. And the
final two implement two more minor improvements.

-Alex

Alex Elder (10):
net: ipa: kill replenish_saved
net: ipa: allocate transaction before pages when replenishing
net: ipa: increment backlog in replenish caller
net: ipa: decide on doorbell in replenish loop
net: ipa: allocate transaction in replenish loop
net: ipa: don't use replenish_backlog
net: ipa: introduce gsi_channel_trans_idle()
net: ipa: kill replenish_backlog
net: ipa: replenish after delivering payload
net: ipa: determine replenish doorbell differently

drivers/net/ipa/gsi_trans.c | 11 ++++
drivers/net/ipa/gsi_trans.h | 10 +++
drivers/net/ipa/ipa_endpoint.c | 112 +++++++++++----------------------
drivers/net/ipa/ipa_endpoint.h | 8 +--
4 files changed, 60 insertions(+), 81 deletions(-)

--
2.32.0