> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Michal Kubiak > Sent: 08 August 2025 21:27 > 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 v2 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]> > Signed-off-by: Michal Kubiak <[email protected]> > --- > drivers/net/ethernet/intel/ice/ice.h | 2 + > drivers/net/ethernet/intel/ice/ice_base.c | 26 ++-- > drivers/net/ethernet/intel/ice/ice_txrx.c | 136 ++---------------- > drivers/net/ethernet/intel/ice/ice_txrx.h | 8 -- > drivers/net/ethernet/intel/ice/ice_virtchnl.c | 5 +- > 5 files changed, 25 insertions(+), 152 deletions(-) >
Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)
