[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220413171026.1264294-1-drt@linux.ibm.com>
Date: Wed, 13 Apr 2022 13:10:20 -0400
From: Dany Madden <drt@...ux.ibm.com>
To: netdev@...r.kernel.org
Cc: sukadev@...ux.ibm.com
Subject: [PATCH net-next 0/6] ibmvnic: Use a set of LTBs per pool
From: Sukadev Bhattiprolu <sukadev@...ux.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(-)
--
2.27.0
Powered by blists - more mailing lists