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