From: Luigi Rizzo <[email protected]>
Date: Tue,  3 Nov 2026 16:23:23 +0000

> libeth_rx_alloc() always allocates with GFP_ATOMIC, including when a
> driver 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.
> 
> Patch 1 adds __libeth_rx_alloc() taking a gfp_t parameter and turns
> libeth_rx_alloc() into its GFP_ATOMIC wrapper.
> Patch 2 switches idpf's initial Rx ring fill (both splitq and singleq)
> to GFP_KERNEL.
> 
> v3:
>   - rename libeth_rx_alloc_gfp() to __libeth_rx_alloc() and put the gfp
>     argument on its own line in page_pool_alloc_netmem() (Alexander Lobakin)
> v2: https://lore.kernel.org/r/[email protected]/
>   - split into two patches (libeth helper and idpf consumer)
> v1: https://lore.kernel.org/r/[email protected]/
> 
> Luigi Rizzo (2):
>   libeth: add __libeth_rx_alloc() to specify allocation flags
>   idpf: use GFP_KERNEL for the initial Rx ring fill

For the series:

Reviewed-by: Alexander Lobakin <[email protected]>

Thanks!
Olek

Reply via email to