> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of 
> Michal Kubiak
> Sent: Thursday, September 25, 2025 2:23 AM
> To: [email protected]
> Cc: Fijalkowski, Maciej <[email protected]>; Lobakin, Aleksander 
> <[email protected]>; Keller, Jacob E <[email protected]>; 
> Zaremba, Larysa <[email protected]>; 
> [email protected]; Kitszel, Przemyslaw <[email protected]>; 
> [email protected]; Nguyen, Anthony L <[email protected]>; 
> Kubiak, Michal <[email protected]>
> Subject: [Intel-wired-lan] [PATCH iwl-next v3 2/3] ice: drop page splitting 
> and recycling
> 
> As part of the transition toward Page Pool integration, remove the legacy 
> page splitting and recycling logic from the ice driver. This mirrors the 
> approach taken in commit 920d86f3c552 ("iavf: drop page splitting > and 
> recycling").
> 
> The previous model attempted to reuse partially consumed pages by splitting 
> them and tracking their usage across descriptors. While this was once a 
> memory optimization, it introduced significant complexity and overhead in the 
> Rx path, including:
> - Manual refcount management and page reuse heuristics;
> - Per-descriptor buffer shuffling, which could involve moving dozens
>   of `ice_rx_buf` structures per NAPI cycle;
> - Increased branching and cache pressure in the hotpath.
> 
> This change simplifies the Rx logic by always allocating fresh pages and 
> letting the networking stack handle their lifecycle. Although this may 
> temporarily reduce performance (up to ~98% in some XDP cases), it greatly 
> improves maintainability and paves the way for Page Pool, which will restore 
> and exceed previous performance levels.
> 
> The `ice_rx_buf` array is retained for now to minimize diffstat and ease 
> future replacement with a shared buffer abstraction.
> 
> Co-developed-by: Alexander Lobakin <[email protected]>
> Signed-off-by: Alexander Lobakin <[email protected]>
> Reviewed-by: Alexander Lobakin <[email protected]>
> Reviewed-by: Jacob Keller <[email protected]>
> Signed-off-by: Michal Kubiak <[email protected]>
> ---
>  drivers/net/ethernet/intel/ice/ice.h         |   2 +
>  drivers/net/ethernet/intel/ice/ice_base.c    |  29 ++--
>  drivers/net/ethernet/intel/ice/ice_txrx.c    | 139 ++-----------------
>  drivers/net/ethernet/intel/ice/ice_txrx.h    |  72 ----------
>  drivers/net/ethernet/intel/ice/virt/queues.c |   5 +-
>  5 files changed, 24 insertions(+), 223 deletions(-)

Tested-by: Alexander Nowlin <[email protected]>

Reply via email to