[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <PH3PPF67C992ECC0B4A37DB80F8D88270609101A@PH3PPF67C992ECC.namprd11.prod.outlook.com>
Date: Wed, 3 Sep 2025 07:53:50 +0000
From: "Singh, PriyaX" <priyax.singh@...el.com>
To: "intel-wired-lan-bounces@...osl.org" <intel-wired-lan-bounces@...osl.org>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "Fijalkowski, Maciej" <maciej.fijalkowski@...el.com>, "Lobakin,
Aleksander" <aleksander.lobakin@...el.com>, "Keller, Jacob E"
<jacob.e.keller@...el.com>, "Zaremba, Larysa" <larysa.zaremba@...el.com>,
"(Meetup2) MTR-FM1-AVLAB1" <fm1avlab1@...el.com>, "Kitszel, Przemyslaw"
<przemyslaw.kitszel@...el.com>, "Nguyen, Anthony L"
<anthony.l.nguyen@...el.com>, "Kubiak, Michal" <michal.kubiak@...el.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>, "Buvaneswaran, Sujai"
<sujai.buvaneswaran@...el.com>
Subject: RE: [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 <aleksander.lobakin@...el.com>
> Signed-off-by: Alexander Lobakin <aleksander.lobakin@...el.com>
> Reviewed-by: Alexander Lobakin <aleksander.lobakin@...el.com>
> Signed-off-by: Michal Kubiak <michal.kubiak@...el.com>
> ---
> 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: Priya Singh <priyax.singh@...el.com>
Powered by blists - more mailing lists