On 2025-10-31 5:58 AM, Sanigani, SarithaX wrote:
-----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 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 standardized 
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]<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]>>

---
<snip>>
Tested-by: Saritha Sanigani 
<[email protected]<mailto:[email protected]>> (A Contingent 
Worker at Intel)

Hello Saritha

It seems your email client is misconfigured as this message (and the rest of messages for this series) appear as completely separate from the thread "ice: convert Rx path to Page Pool". This also means patchwork did not pick up your Tested-by tags [1].

Another issue is the mangled email addresses in Signed-off-by/Reviewed-by/Tested-by tags.

Best,
Dawid

[1] https://patchwork.ozlabs.org/project/intel-wired-lan/patch/[email protected]/

Reply via email to