netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v1 0/2] page_pool: bnxt_en: unlink old page pool in queue api using helper
@ 2024-06-25 19:55 David Wei
  2024-06-25 19:55 ` [PATCH net-next v1 1/2] page_pool: reintroduce page_pool_unlink_napi() David Wei
  2024-06-25 19:55 ` [PATCH net-next v1 2/2] bnxt_en: unlink page pool when stopping Rx queue David Wei
  0 siblings, 2 replies; 5+ messages in thread
From: David Wei @ 2024-06-25 19:55 UTC (permalink / raw)
  To: Michael Chan, Andy Gospodarek, Jesper Dangaard Brouer,
	Ilias Apalodimas, netdev
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni

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.

The page pool to be destroyed is still linked to the re-used NAPI
instance. Freeing it as-is will trigger warnings in
page_pool_disable_direct_recycling(). In my initial patches I unlinked
very directly by setting pp.napi to NULL.

Instead, bring back page_pool_unlink_napi() and use that instead of
having a driver touch a core struct directly.

David Wei (2):
  page_pool: reintroduce page_pool_unlink_napi()
  bnxt_en: unlink page pool when stopping Rx queue

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

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-06-26  0:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-25 19:55 [PATCH net-next v1 0/2] page_pool: bnxt_en: unlink old page pool in queue api using helper David Wei
2024-06-25 19:55 ` [PATCH net-next v1 1/2] page_pool: reintroduce page_pool_unlink_napi() David Wei
2024-06-25 23:39   ` Jakub Kicinski
2024-06-26  0:10     ` David Wei
2024-06-25 19:55 ` [PATCH net-next v1 2/2] bnxt_en: unlink page pool when stopping Rx queue David Wei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).