All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.