> -----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 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]>
> Reviewed-by: Jacob Keller <[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_txrx.h    | 16 ----
>  drivers/net/ethernet/intel/ice/ice_xsk.c     | 72 +---------------
>  7 files changed, 6 insertions(+), 208 deletions(-)

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

Reply via email to