All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: <netdev@vger.kernel.org>
Cc: <bpf@vger.kernel.org>, <magnus.karlsson@intel.com>,
	<stfomichev@gmail.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<horms@kernel.org>, <larysa.zaremba@intel.com>,
	<aleksander.lobakin@intel.com>, <bjorn@kernel.org>
Subject: Re: [PATCH v5 net 00/11] xsk: tailroom reservation and MTU validation
Date: Thu, 2 Apr 2026 13:12:42 +0200	[thread overview]
Message-ID: <ac5PKvH7ZGZTT5s6@boxer> (raw)
In-Reply-To: <20260331150213.550797-1-maciej.fijalkowski@intel.com>

On Tue, Mar 31, 2026 at 05:02:02PM +0200, Maciej Fijalkowski wrote:

FWIW I'll be sending v6 as I messed up refcounting scheme on error path
for shared umem. I'm gonna also put on shelf driver cleanups as I got fed
up with issues reported by Sashiko. I plan to get back to it if I get to
work on forbidding mtu change feature on interfaces loaded with xsk
sockets.

> v4->v5:
> - add further review tags from Bjorn
> - fix ./test_progs -t xsk
>  * do so by making the procfs reading common so test_xsk.c can use it
> - get back to idea of relying on pool->umem->zc in
>   xsk_pool_get_tailroom(); that is because we now call its caller
>   (xsk_pool_get_rx_frame_size()) before getting down to driver via
>   ndo_bpf - we do it to rule out invalid setups in terms of MTU vs xsk
>   frame size/number of exposed segments by driver
> - bring back explicit rejection of mbuf && segs == 1 combo
> 
> v3->v4:
> - allow exact 128 bytes of space when user defined headroom is deducted
>   from total frame size
> - provide a routine for reading procfs entries within xskxceiver
>   * use it to fetch cache line size and calculate skb_shared_info size
>     on our own
> - clean up gve and igc xsk pool enablement routines
> - include mtu vs frame size * max zc segments validation in
>   xp_assign_dev()
> 
> v2->v3:
> - add tags from Bjorn/Stan
> - provide at least 128 bytes instead ETH_ZLEN when validating frame
>   headroom
>   * this way we can get rid of i40e/ice changes
>   * make sure xsk_pool_get_rx_frame_size() returns value 128b-aligned
>   * and remove pre-check from idpf
> - separate XDP_UMEM_SG_FLAG fixes from MTU validation in xsk_bind()
> - make drop_idx a local variable in xsk's xdp drop prog
> - adjust rx_dropped to new 128b related values
> - move ugly placed define (Bjorn)
> - remove READ_ONCE when fetching netdev->mtu (Bjorn)
> 
> v1->v2:
> - remove xsk_pool_get_tailroom() definition for !CONFIG_XDP_SOCKETS
>   (Stan)
> - do not rely on pool->umem->zc when configuring tailroom (Stan, Bjorn)
> - simplify dbuff setting in ZC drivers (Bjorn)
> - use defines for {head,tail}room in tests (Bjorn)
> - return EINVAL instead of EOPNOTSUPP when mtu setting is wrong (Bjorn)
> - include vlan headers and fcs length when validating mtu (Olek)
> - tighten umem headroom validation when registering umem (Sashiko AI)
> - set XDP_USE_SG in xp_assign_dev_shared() (Sashiko AI)
> - adjust rx dropped xskxceiver test
> 
> Hi,
> 
> here we fix a long-standing issue regarding multi-buffer scenario in ZC
> mode - we have not been providing space at the end of the buffer where
> multi-buffer XDP works on skb_shared_info. This has been brought to our
> attention via [0].
> 
> Unaligned mode does not get any specific treatment, it is user's
> responsibility to properly handle XSK addresses in queues.
> 
> With adjustments included here in this set against xskxceiver I have
> been able to pass the full test suite on ice.
> 
> Thanks,
> Maciej
> 
> [0]: https://community.intel.com/t5/Ethernet-Products/X710-XDP-Packet-Corruption-Issue-DRV-MODE-Zero-Copy-Multi-Buffer/m-p/1724208
> 
> 
> Maciej Fijalkowski (11):
>   xsk: tighten UMEM headroom validation to account for tailroom and min
>     frame
>   xsk: respect tailroom for ZC setups
>   xsk: fix XDP_UMEM_SG_FLAG issues
>   xsk: validate MTU against usable frame size on bind
>   selftests: bpf: introduce a common routine for reading procfs
>   selftests: bpf: fix pkt grow tests
>   selftests: bpf: have a separate variable for drop test
>   selftests: bpf: adjust rx_dropped xskxceiver's test to respect
>     tailroom
>   idpf: remove xsk frame size check against alignment
>   igc: remove home-grown xsk's frame size validation
>   gve: remove home-grown xsk's frame size validation
> 
>  drivers/net/ethernet/google/gve/gve_main.c    |  5 --
>  drivers/net/ethernet/intel/idpf/xsk.c         | 10 ----
>  drivers/net/ethernet/intel/igc/igc_xdp.c      | 11 ----
>  include/net/xdp_sock.h                        |  2 +-
>  include/net/xdp_sock_drv.h                    | 17 +++++-
>  net/xdp/xdp_umem.c                            |  3 +-
>  net/xdp/xsk_buff_pool.c                       | 25 ++++++++-
>  .../selftests/bpf/prog_tests/test_xsk.c       | 55 +++++++++----------
>  .../selftests/bpf/prog_tests/test_xsk.h       | 23 ++++++++
>  tools/testing/selftests/bpf/prog_tests/xsk.c  | 19 +++++++
>  .../selftests/bpf/progs/xsk_xdp_progs.c       |  4 +-
>  tools/testing/selftests/bpf/xskxceiver.c      | 23 ++++++++
>  12 files changed, 135 insertions(+), 62 deletions(-)
> 
> -- 
> 2.43.0
> 

      parent reply	other threads:[~2026-04-02 11:12 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-31 15:02 [PATCH v5 net 00/11] xsk: tailroom reservation and MTU validation Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 01/11] xsk: tighten UMEM headroom validation to account for tailroom and min frame Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 02/11] xsk: respect tailroom for ZC setups Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 03/11] xsk: fix XDP_UMEM_SG_FLAG issues Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 04/11] xsk: validate MTU against usable frame size on bind Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 05/11] selftests: bpf: introduce a common routine for reading procfs Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 06/11] selftests: bpf: fix pkt grow tests Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 07/11] selftests: bpf: have a separate variable for drop test Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 08/11] selftests: bpf: adjust rx_dropped xskxceiver's test to respect tailroom Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 09/11] idpf: remove xsk frame size check against alignment Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 10/11] igc: remove home-grown xsk's frame size validation Maciej Fijalkowski
2026-03-31 15:02 ` [PATCH v5 net 11/11] gve: " Maciej Fijalkowski
2026-04-02 11:12 ` Maciej Fijalkowski [this message]

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=ac5PKvH7ZGZTT5s6@boxer \
    --to=maciej.fijalkowski@intel.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=bjorn@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=larysa.zaremba@intel.com \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=stfomichev@gmail.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.