> -----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 1/3] ice: remove legacy Rx and 
> construct SKB
>
> The commit 53844673d555 ("iavf: kill 'legacy-rx' for good") removed the 
> legacy Rx path in the iavf driver. This change applies the same rationale to 
> the ice driver.
>
> The legacy Rx path relied on manual skb allocation and header copying, which 
> has become increasingly inefficient and difficult to maintain.
> With the stabilization of build_skb() and the growing adoption of features 
> like XDP, page_pool, and multi-buffer support, the legacy approach is no 
> longer viable.
>
> Key drawbacks of the legacy path included:
> - Higher memory pressure due to direct page allocations and splitting;
> - Redundant memcpy() operations for packet headers;
> - CPU overhead from eth_get_headlen() and Flow Dissector usage;
> - Compatibility issues with XDP, which imposes strict headroom and
>  tailroom requirements.
>
> The ice driver, like iavf, does not benefit from the minimal headroom savings 
> that legacy Rx once offered, as it already splits pages into fixed halves. 
> Removing this path simplifies the Rx logic, eliminates unnecessary branches 
> in the hotpath, and prepares the driver for upcoming enhancements.
>
> In addition to removing the legacy Rx path, this change also eliminates the 
> custom construct_skb() functions from both the standard and zero-copy (ZC) Rx 
> paths. These are replaced with the build_skb() and standarized 
> xdp_build_skb_from_zc() helpers, aligning the driver with the modern XDP 
> infrastructure and reducing code duplication.
>
> This cleanup also reduces code complexity and improves maintainability as we 
> move toward a more unified and modern Rx model across drivers.
>
> 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         |  1 -
> drivers/net/ethernet/intel/ice/ice_base.c    | 23 +-----
> drivers/net/ethernet/intel/ice/ice_ethtool.c |  5 --
> drivers/net/ethernet/intel/ice/ice_main.c    | 11 +--
> drivers/net/ethernet/intel/ice/ice_txrx.c    | 86 +-------------------
> drivers/net/ethernet/intel/ice/ice_xsk.c     | 72 +---------------
> 6 files changed, 6 insertions(+), 192 deletions(-)
>

Tested-by: Rinitha S <[email protected]> (A Contingent worker at Intel)

Reply via email to