netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Tirthendu Sarkar <tirthendu.sarkar@intel.com>
Cc: <intel-wired-lan@lists.osuosl.org>, <jesse.brandeburg@intel.com>,
	<anthony.l.nguyen@intel.com>, <netdev@vger.kernel.org>,
	<bpf@vger.kernel.org>, <magnus.karlsson@intel.com>
Subject: Re: [PATCH intel-next v5 0/8] i40e: support XDP multi-buffer
Date: Thu, 16 Feb 2023 15:43:00 +0100	[thread overview]
Message-ID: <Y+5A9BV7E5IEQ4o2@boxer> (raw)
In-Reply-To: <20230216140043.109345-1-tirthendu.sarkar@intel.com>

On Thu, Feb 16, 2023 at 07:30:35PM +0530, Tirthendu Sarkar wrote:
> This patchset adds multi-buffer support for XDP. Tx side already has
> support for multi-buffer. This patchset focuses on Rx side. The last
> patch contains actual multi-buffer changes while the previous ones are
> preparatory patches.
> 
> On receiving the first buffer of a packet, xdp_buff is built and its
> subsequent buffers are added to it as frags. While 'next_to_clean' keeps
> pointing to the first descriptor, the newly introduced 'next_to_process'
> keeps track of every descriptor for the packet. 
> 
> On receiving EOP buffer the XDP program is called and appropriate action
> is taken (building skb for XDP_PASS, reusing page for XDP_DROP, adjusting
> page offsets for XDP_{REDIRECT,TX}).
> 
> The patchset also streamlines page offset adjustments for buffer reuse
> to make it easier to post process the rx_buffers after running XDP prog.
> 
> With this patchset there does not seem to be any performance degradation
> for XDP_PASS and some improvement (~1% for XDP_TX, ~5% for XDP_DROP) when
> measured using xdp_rxq_info program from samples/bpf/ for 64B packets.

For series:
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>

> 
> Changelog:
>     v4 -> v5:
>     - Change s/size/truesize [Tony]
>     - Rebased on top of commit 9dd6e53ef63d ("i40e: check vsi type before
>       setting xdp_features flag") [Lorenzo]
>     - Changed size of on stack variable to u32 from u16.
> 
>     v3 -> v4:
>     - Added non-linear XDP buffer support to xdp_features. [Maciej]
>     - Removed double space. [Maciej]
> 
>     v2 -> v3:
>     - Fixed buffer cleanup for single buffer packets on skb alloc
>       failure.
>     - Better naming of cleanup function.
>     - Stop incrementing nr_frags for overflowing packets.
>  
>     v1 -> v2:
>     - Instead of building xdp_buff on eop now it is built incrementally.
>     - xdp_buff is now added to i40e_ring struct for preserving across
>       napi calls. [Alexander Duyck]
>     - Post XDP program rx_buffer processing has been simplified.
>     - Rx buffer allocation pull out is reverted to avoid performance 
>       issues for smaller ring sizes and now done when at least half of
>       the ring has been cleaned. With v1 there was ~75% drop for
>       XDP_PASS with the smallest ring size of 64 which is mitigated by
>       v2 [Alexander Duyck]
>     - Instead of retrying skb allocation on previous failure now the
>       packet is dropped. [Maciej]
>     - Simplified page offset adjustments by using xdp->frame_sz instead
>       of recalculating truesize. [Maciej]
>     - Change i40e_trace() to use xdp instead of skb [Maciej]
>     - Reserve tailroom for legacy-rx [Maciej]
>     - Centralize max frame size calculation
> 
> Tirthendu Sarkar (8):
>   i40e: consolidate maximum frame size calculation for vsi
>   i40e: change Rx buffer size for legacy-rx to support XDP multi-buffer
>   i40e: add pre-xdp page_count in rx_buffer
>   i40e: Change size to truesize when using i40e_rx_buffer_flip()
>   i40e: use frame_sz instead of recalculating truesize for building skb
>   i40e: introduce next_to_process to i40e_ring
>   i40e: add xdp_buff to i40e_ring struct
>   i40e: add support for XDP multi-buffer Rx
> 
>  drivers/net/ethernet/intel/i40e/i40e_main.c  |  78 ++--
>  drivers/net/ethernet/intel/i40e/i40e_trace.h |  20 +-
>  drivers/net/ethernet/intel/i40e/i40e_txrx.c  | 420 +++++++++++--------
>  drivers/net/ethernet/intel/i40e/i40e_txrx.h  |  21 +-
>  4 files changed, 307 insertions(+), 232 deletions(-)
> 
> -- 
> 2.34.1
> 

  parent reply	other threads:[~2023-02-16 14:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-16 14:00 [PATCH intel-next v5 0/8] i40e: support XDP multi-buffer Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 1/8] i40e: consolidate maximum frame size calculation for vsi Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 2/8] i40e: change Rx buffer size for legacy-rx to support XDP multi-buffer Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 3/8] i40e: add pre-xdp page_count in rx_buffer Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 4/8] i40e: Change size to truesize when using i40e_rx_buffer_flip() Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 5/8] i40e: use frame_sz instead of recalculating truesize for building skb Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 6/8] i40e: introduce next_to_process to i40e_ring Tirthendu Sarkar
2023-02-16 14:42   ` Maciej Fijalkowski
2023-02-16 14:00 ` [PATCH intel-next v5 7/8] i40e: add xdp_buff to i40e_ring struct Tirthendu Sarkar
2023-02-16 14:00 ` [PATCH intel-next v5 8/8] i40e: add support for XDP multi-buffer Rx Tirthendu Sarkar
2023-02-16 14:43 ` Maciej Fijalkowski [this message]
2023-02-17 17:02 ` [PATCH intel-next v5 0/8] i40e: support XDP multi-buffer Tony Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+5A9BV7E5IEQ4o2@boxer \
    --to=maciej.fijalkowski@intel.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=bpf@vger.kernel.org \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jesse.brandeburg@intel.com \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=tirthendu.sarkar@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).