[PATCH net-next v2 0/9] ibmvnic: Performance improvements and other updates
Thomas Falcon
tlfalcon at linux.ibm.com
Thu Nov 19 12:12:16 AEDT 2020
The first three patches utilize a hypervisor call allowing multiple
TX and RX buffer replenishment descriptors to be sent in one operation,
which significantly reduces hypervisor call overhead. The xmit_more
and Byte Queue Limit API's are leveraged to provide this support
for TX descriptors.
The subsequent two patches remove superfluous code and members in
TX completion handling function and TX buffer structure, respectively,
and remove unused routines.
Finally, four patches which ensure that device queue memory is
cache-line aligned, resolving slowdowns observed in PCI traces,
as well as optimize the driver's NAPI polling function and
to RX buffer replenishment are provided by Dwip Banerjee.
This series provides significant performance improvements, allowing
the driver to fully utilize 100Gb NIC's.
v2 updates:
1) Removed three patches from the original series which
were bug fixes and thus better suited for the net tree,
suggested by Jakub Kicinski.
2) Fixed error handling when initializing device queues,
suggested by Jakub Kicinski.
3) Fixed bug where queued entries were not flushed after a
dropped frame, also suggested by Jakub. Two functions,
ibmvnic_tx_scrq_flush and its helper ibmvnic_tx_scrq_clean_buffer,
were introduced to ensure that queued frames are either submitted
to firmware or, if that is not successful, freed as dropped and
associated data structures are updated with the new device queue state.
Dwip N. Banerjee (4):
ibmvnic: Ensure that device queue memory is cache-line aligned
ibmvnic: Correctly re-enable interrupts in NAPI polling routine
ibmvnic: Use netdev_alloc_skb instead of alloc_skb to replenish RX
buffers
ibmvnic: Do not replenish RX buffers after every polling loop
Thomas Falcon (5):
ibmvnic: Introduce indirect subordinate Command Response Queue buffer
ibmvnic: Introduce batched RX buffer descriptor transmission
ibmvnic: Introduce xmit_more support using batched subCRQ hcalls
ibmvnic: Clean up TX code and TX buffer data structure
ibmvnic: Remove send_subcrq function
drivers/net/ethernet/ibm/ibmvnic.c | 398 ++++++++++++++++++-----------
drivers/net/ethernet/ibm/ibmvnic.h | 27 +-
2 files changed, 256 insertions(+), 169 deletions(-)
--
2.26.2
More information about the Linuxppc-dev
mailing list