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