mbox series

[net-next,v2,0/2] page_pool: bnxt_en: unlink old page pool in queue api using helper

Message ID 20240627030200.3647145-1-dw@davidwei.uk (mailing list archive)
Headers show
Series page_pool: bnxt_en: unlink old page pool in queue api using helper | expand

Message

David Wei June 27, 2024, 3:01 a.m. UTC
56ef27e3 unexported page_pool_unlink_napi() and renamed it to
page_pool_disable_direct_recycling(). This is because there was no
in-tree user of page_pool_unlink_napi().

Since then Rx queue API and an implementation in bnxt got merged. In the
bnxt implementation, it broadly follows the following steps: allocate
new queue memory + page pool, stop old rx queue, swap, then destroy old
queue memory + page pool.

The existing NAPI instance is re-used so when the old page pool that is
no longer used but still linked to this shared NAPI instance is
destroyed, it will trigger warnings.

In my initial patches I unlinked a page pool from a NAPI instance
directly. Instead, export page_pool_disable_direct_recycling() and call
that instead to avoid having a driver touch a core struct.

David Wei (2):
  page_pool: export page_pool_disable_direct_recycling()
  bnxt_en: unlink page pool when stopping Rx queue

 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +-----
 include/net/page_pool/types.h             | 1 +
 net/core/page_pool.c                      | 3 ++-
 3 files changed, 4 insertions(+), 6 deletions(-)

Comments

Jakub Kicinski June 27, 2024, 11:50 p.m. UTC | #1
On Wed, 26 Jun 2024 20:01:58 -0700 David Wei wrote:
> In my initial patches I unlinked a page pool from a NAPI instance
> directly. Instead, export page_pool_disable_direct_recycling() and call
> that instead to avoid having a driver touch a core struct.

Reviewed-by: Jakub Kicinski <kuba@kernel.org>