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>
patchwork-bot+netdevbpf@kernel.org July 2, 2024, 1:20 p.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Wed, 26 Jun 2024 20:01:58 -0700 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/2] page_pool: export page_pool_disable_direct_recycling()
    https://git.kernel.org/netdev/net-next/c/d7f39aee79f0
  - [net-next,v2,2/2] bnxt_en: unlink page pool when stopping Rx queue
    https://git.kernel.org/netdev/net-next/c/40eca00ae605

You are awesome, thank you!