mbox series

[net-next,0/6] ibmvnic: Use a set of LTBs per pool

Message ID 20220413171026.1264294-1-drt@linux.ibm.com (mailing list archive)
Headers show
Series ibmvnic: Use a set of LTBs per pool | expand

Message

Dany Madden April 13, 2022, 5:10 p.m. UTC
From: Sukadev Bhattiprolu <sukadev@linux.ibm.com>

ibmvnic uses a single large long term buffer (LTB) per rx or tx
pool (queue). This has two limitations.
 
First, if we need to free/allocate an LTB (eg during a reset), under
low memory conditions, the allocation can fail. 

Second, the kernel limits the size of single LTB (DMA buffer) to 16MB
(based on MAX_ORDER). With jumbo frames (mtu = 9000) we can only have
about 1763 buffers per LTB (16MB / 9588 bytes per frame) even though
the max supported buffers is 4096. (The 9588 instead of 9088 comes from
IBMVNIC_BUFFER_HLEN.)

To overcome these limitations, allow creating a set of LTBs per queue.

Sukadev Bhattiprolu (6):
  ibmvnic: rename local variable index to bufidx
  ibmvnic: define map_rxpool_buf_to_ltb()
  ibmvnic: define map_txpool_buf_to_ltb()
  ibmvnic: convert rxpool ltb to a set of ltbs
  ibmvnic: Allow multiple ltbs in rxpool ltb_set
  ibmvnic: Allow multiple ltbs in txpool ltb_set

 drivers/net/ethernet/ibm/ibmvnic.c | 310 ++++++++++++++++++++++++-----
 drivers/net/ethernet/ibm/ibmvnic.h |  54 ++++-
 2 files changed, 308 insertions(+), 56 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org April 15, 2022, 9:30 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 13 Apr 2022 13:10:20 -0400 you wrote:
> From: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
> 
> ibmvnic uses a single large long term buffer (LTB) per rx or tx
> pool (queue). This has two limitations.
> 
> First, if we need to free/allocate an LTB (eg during a reset), under
> low memory conditions, the allocation can fail.
> 
> [...]

Here is the summary with links:
  - [net-next,1/6] ibmvnic: rename local variable index to bufidx
    https://git.kernel.org/netdev/net-next/c/8880fc669ded
  - [net-next,2/6] ibmvnic: define map_rxpool_buf_to_ltb()
    https://git.kernel.org/netdev/net-next/c/2872a67c6bcf
  - [net-next,3/6] ibmvnic: define map_txpool_buf_to_ltb()
    https://git.kernel.org/netdev/net-next/c/0c91bf9ceba6
  - [net-next,4/6] ibmvnic: convert rxpool ltb to a set of ltbs
    https://git.kernel.org/netdev/net-next/c/d6b458509035
  - [net-next,5/6] ibmvnic: Allow multiple ltbs in rxpool ltb_set
    https://git.kernel.org/netdev/net-next/c/a75de820575d
  - [net-next,6/6] ibmvnic: Allow multiple ltbs in txpool ltb_set
    https://git.kernel.org/netdev/net-next/c/93b1ebb348a9

You are awesome, thank you!