octeontx2-pf: fix page_pool creation fail for rings > 32k
authorRatheesh Kannoth <rkannoth@marvell.com>
Thu, 24 Aug 2023 03:03:01 +0000 (08:33 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 25 Aug 2023 09:09:40 +0000 (10:09 +0100)
commit49fa4b0d06705a24a81bb8be6eb175059b77f0a7
tree456f1d75a20e4c32786d57db5397f8ede023181b
parent0aacec49c29e7c5b1487e859b0c0a42388c34092
octeontx2-pf: fix page_pool creation fail for rings > 32k

octeontx2 driver calls page_pool_create() during driver probe()
and fails if queue size > 32k. Page pool infra uses these buffers
as shock absorbers for burst traffic. These pages are pinned down
over time as working sets varies, due to the recycling nature
of page pool, given page pool (currently) don't have a shrinker
mechanism, the pages remain pinned down in ptr_ring.
Instead of clamping page_pool size to 32k at
most, limit it even more to 2k to avoid wasting memory.

This have been tested on octeontx2 CN10KA hardware.
TCP and UDP tests using iperf shows no performance regressions.

Fixes: b2e3406a38f0 ("octeontx2-pf: Add support for page pool")
Suggested-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Reviewed-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
Acked-by: Jesper Dangaard Brouer <hawk@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h