[Intel-wired-lan] [next S66 v2 11/11] i40e/i40evf: Use build_skb to build frames

Bowers, AndrewX andrewx.bowers at intel.com
Thu Apr 6 22:02:46 UTC 2017


> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at lists.osuosl.org] On
> Behalf Of Alice Michael
> Sent: Wednesday, April 5, 2017 4:51 AM
> To: Michael, Alice <alice.michael at intel.com>; intel-wired-
> lan at lists.osuosl.org
> Subject: [Intel-wired-lan] [next S66 v2 11/11] i40e/i40evf: Use build_skb to
> build frames
> 
> From: Alexander Duyck <alexander.h.duyck at intel.com>
> 
> This patch is meant to improve the performance of the Rx path.
> Specifically by using build_skb we have several distinct advantages.
> 
> In the case of small frames we were previously using a copy-break approach.
> This means that we were allocating a page fragment to use for skb->head,
> and were having to copy the packet into that region.  Both of those calls are
> now avoided since we just build the skb around the data.
> 
> In the case of large frames the gains are much more significant.
> Specifically we were having to allocate skb->head, and copy the headers as
> before.  However in addition we were having to parse the header using
> eth_get_headlen which could be quite expensive.  All of this is avoided by
> building the frame around the data.  I have seen gains as high as 30% when
> using VXLAN for instance due to just header pulling overhead.
> 
> Finally with all this in place it also sets us up to start looking at enabling XDP.
> Specifically we now have a path in which the data is in the page and the
> frame is built around it.  So if we parse it with XDP before we call build_skb
> we can take care of any necessary processing there.
> 
> Signed-off-by: Alexander Duyck <alexander.h.duyck at intel.com>
> Change-ID: Id4bdd618e94473d41f892417e5d8019639e421e3
> ---
>  drivers/net/ethernet/intel/i40e/i40e_txrx.c   | 47
> +++++++++++++++++++++++++++
>  drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 47
> +++++++++++++++++++++++++++
>  2 files changed, 94 insertions(+)

Tested-by: Andrew Bowers <andrewx.bowers at intel.com>


More information about the Intel-wired-lan mailing list