eth: bnxt: take page size into account for page pool recycling rings
authorJakub Kicinski <kuba@kernel.org>
Thu, 26 Jun 2025 16:54:41 +0000 (09:54 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 27 Jun 2025 22:38:41 +0000 (15:38 -0700)
commitf7dbedba63124256feb9d9fcf36e8a2e43858d1e
tree522ac019ca48a58a13991ef36e3176a0cedf40ad
parent2f5a4117599caa29ea594585a82cef21d7812302
eth: bnxt: take page size into account for page pool recycling rings

The Rx rings are filled with Rx buffers. Which are supposed to fit
packet headers (or MTU if HW-GRO is disabled). The aggregation buffers
are filled with "device pages". Adjust the sizes of the page pool
recycling ring appropriately, based on ratio of the size of the
buffer on given ring vs system page size. Otherwise on a system
with 64kB pages we end up with >700MB of memory sitting in every
single page pool cache.

Correct the size calculation for the head_pool. Since the buffers
there are always small I'm pretty sure I meant to cap the size
at 1k, rather than make it the lowest possible size. With 64k pages
1k cache with a 1k ring is 64x larger than we need.

Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250626165441.4125047-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c