[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241204041022.56512-1-dw@davidwei.uk>
Date: Tue, 3 Dec 2024 20:10:19 -0800
From: David Wei <dw@...idwei.uk>
To: netdev@...r.kernel.org,
Michael Chan <michael.chan@...adcom.com>,
Andy Gospodarek <andrew.gospodarek@...adcom.com>,
Somnath Kotur <somnath.kotur@...adcom.com>
Cc: Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
David Wei <dw@...idwei.uk>
Subject: [PATCH net v3 0/3] bnxt_en: support header page pool in queue API
Commit 7ed816be35ab ("eth: bnxt: use page pool for head frags") added a
separate page pool for header frags. Now, frags are allocated from this
header page pool e.g. rxr->tpa_info.data.
The queue API did not properly handle rxr->tpa_info and so using the
queue API to i.e. reset any queues will result in pages being returned
to the incorrect page pool, causing inflight != 0 warnings.
Fix this bug by properly allocating/freeing tpa_info and copying/freeing
head_pool in the queue API implementation.
The 1st patch is a prep patch that refactors helpers out to be used by
the implementation patch later.
The 2nd patch is a drive-by refactor. Happy to take it out and re-send
to net-next if there are any objections.
The 3rd patch is the implementation patch that will properly alloc/free
rxr->tpa_info.
---
v3:
- use common helper bnxt_separate_head_pool() instead of comparing
head_pool and page_pool
- better document why TPA changes were needed in patch 3
v2:
- remove unneeded struct bnxt_rx_ring_info *rxr declaration
- restore unintended removal of page_pool_disable_direct_recycling()
David Wei (3):
bnxt_en: refactor tpa_info alloc/free into helpers
bnxt_en: refactor bnxt_alloc_rx_rings() to call
bnxt_alloc_rx_agg_bmap()
bnxt_en: handle tpa_info in queue API implementation
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 205 ++++++++++++++--------
1 file changed, 129 insertions(+), 76 deletions(-)
--
2.43.5
Powered by blists - more mailing lists