All of lore.kernel.org
 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
> 

WARNING: multiple messages have this Message-ID (diff)
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Tirthendu Sarkar <tirthendu.sarkar@intel.com>
Cc: netdev@vger.kernel.org, jesse.brandeburg@intel.com,
	anthony.l.nguyen@intel.com, intel-wired-lan@lists.osuosl.org,
	bpf@vger.kernel.org, magnus.karlsson@intel.com
Subject: Re: [Intel-wired-lan] [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
> 
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

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

Thread overview: 24+ 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 ` [Intel-wired-lan] " 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   ` [Intel-wired-lan] " 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   ` [Intel-wired-lan] " 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   ` [Intel-wired-lan] " 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   ` [Intel-wired-lan] " 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   ` [Intel-wired-lan] " 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:00   ` [Intel-wired-lan] " Tirthendu Sarkar
2023-02-16 14:42   ` Maciej Fijalkowski
2023-02-16 14:42     ` [Intel-wired-lan] " 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   ` [Intel-wired-lan] " 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:00   ` [Intel-wired-lan] " Tirthendu Sarkar
2023-02-16 14:43 ` Maciej Fijalkowski [this message]
2023-02-16 14:43   ` [Intel-wired-lan] [PATCH intel-next v5 0/8] i40e: support XDP multi-buffer Maciej Fijalkowski
2023-02-17 17:02 ` Tony Nguyen
2023-02-17 17:02   ` [Intel-wired-lan] " 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.