Re: [PATCH iwl-next] libeth, idpf: use GFP_KERNEL for the initial Rx ring fill
From: Tantilov, Emil S
Date: Mon Oct 19 2026 - 14:21:40 EST
On 10/16/2026 8:18 AM, Luigi Rizzo wrote:
libeth_rx_alloc() always allocates with GFP_ATOMIC, including when idpf
fills its Rx rings at open or on queue reconfiguration. That fill runs
in process context, right after page_pool_create() and before the
queues' NAPI is enabled, so it may sleep, and GFP_ATOMIC is needlessly
restrictive there: it can neither reclaim nor compact, while the initial
fill can allocate tens of thousands of buffers across all queues.
Add libeth_rx_alloc_gfp(), which takes the allocation flags, and make
libeth_rx_alloc() its GFP_ATOMIC wrapper. Use GFP_KERNEL for the initial
fill in idpf.
Signed-off-by: Luigi Rizzo <lrizzo@xxxxxxxxxx>
---
.../ethernet/intel/idpf/idpf_singleq_txrx.c | 7 +++---
drivers/net/ethernet/intel/idpf/idpf_txrx.c | 9 +++++---
drivers/net/ethernet/intel/idpf/idpf_txrx.h | 2 +-
include/net/libeth/rx.h | 23 +++++++++++++++----
Since libeth is outside the driver, it may be better as a separate patch?
4 files changed, 30 insertions(+), 11 deletions(-)
Reviewed-by: Emil Tantilov <emil.s.tantilov@xxxxxxxxx>
Thanks,
Emil