> -----Original Message----- > From: Intel-wired-lan > <[email protected]<mailto:[email protected]>> > On Behalf Of Michal Kubiak
> Sent: Thursday, September 25, 2025 2:53 PM > To: [email protected]<mailto:[email protected]> > Cc: Fijalkowski, Maciej > <[email protected]<mailto:[email protected]>>; Lobakin, > Aleksander > <[email protected]<mailto:[email protected]>>; > Keller, Jacob E <[email protected]<mailto:[email protected]>>; > Zaremba, Larysa <[email protected]<mailto:[email protected]>>; > [email protected]<mailto:[email protected]>; > Kitszel, Przemyslaw > <[email protected]<mailto:[email protected]>>; > [email protected]<mailto:[email protected]>; Nguyen, Anthony L > <[email protected]<mailto:[email protected]>>; Kubiak, > Michal <[email protected]<mailto:[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]<mailto:[email protected]>> > Signed-off-by: Alexander Lobakin > <[email protected]<mailto:[email protected]>> > Reviewed-by: Alexander Lobakin > <[email protected]<mailto:[email protected]>> > Reviewed-by: Jacob Keller > <[email protected]<mailto:[email protected]>> > Signed-off-by: Michal Kubiak > <[email protected]<mailto:[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: Saritha Sanigani <[email protected]<mailto:[email protected]>> (A Contingent Worker at Intel)
