Thread (1 message) 1 message, 1 author, 2025-09-24

RE: [Intel-wired-lan] [PATCH iwl-next 0/5] idpf: add XSk support

From: R, Ramu <hidden>
Date: 2025-09-24 05:03:06
Also in: bpf, intel-wired-lan, lkml

-----Original Message-----
From: Intel-wired-lan <redacted> On Behalf Of
Alexander Lobakin
Sent: Thursday, September 11, 2025 9:52 PM
To: intel-wired-lan@lists.osuosl.org
Cc: Lobakin, Aleksander <aleksander.lobakin@intel.com>; Kubiak, Michal
[off-list ref]; Fijalkowski, Maciej
[off-list ref]; Nguyen, Anthony L
[off-list ref]; Kitszel, Przemyslaw
[off-list ref]; Andrew Lunn [off-list ref];
David S. Miller [off-list ref]; Eric Dumazet
[off-list ref]; Jakub Kicinski [off-list ref]; Paolo Abeni
[off-list ref]; Alexei Starovoitov [off-list ref]; Daniel
Borkmann [off-list ref]; Simon Horman [off-list ref];
NXNE CNSE OSDT ITP Upstreaming
[off-list ref]; bpf@vger.kernel.org;
netdev@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: [Intel-wired-lan] [PATCH iwl-next 0/5] idpf: add XSk support

Add support for XSk xmit and receive using libeth_xdp.

This includes adding interfaces to reconfigure/enable/disable only a particular
set of queues and support for checksum offload XSk Tx metadata.
libeth_xdp's implementation mostly matches the one of ice: batched
allocations and sending, unrolled descriptor writes etc. But unlike other Intel
drivers, XSk wakeup is implemented using CSD/IPI instead of HW "software
interrupt". In lots of different tests, this yielded way better perf than SW
interrupts, but also, this gives better control over which CPU will handle the
NAPI loop (SW interrupts are a subject to irqbalance and stuff, while CSDs are
strictly pinned
1:1 to the core of the same index).
Note that the header split is always disabled for XSk queues, as for now we
see no reasons to have it there.

XSk xmit perf is up to 3x comparing to ice. XSk XDP_PASS is also faster a bunch
as it uses system percpu page_pools, so that the only overlead left is
memcpy(). The rest is at least comparable.

Alexander Lobakin (3):
  idpf: implement XSk xmit
  idpf: implement Rx path for AF_XDP
  idpf: enable XSk features and ndo_xsk_wakeup

Michal Kubiak (2):
  idpf: add virtchnl functions to manage selected queues
  idpf: add XSk pool initialization

 drivers/net/ethernet/intel/idpf/Makefile      |    1 +
 drivers/net/ethernet/intel/idpf/idpf.h        |    7 +
 drivers/net/ethernet/intel/idpf/idpf_txrx.h   |   72 +-
 .../net/ethernet/intel/idpf/idpf_virtchnl.h   |   32 +-
 drivers/net/ethernet/intel/idpf/xdp.h         |    3 +
 drivers/net/ethernet/intel/idpf/xsk.h         |   33 +
 .../net/ethernet/intel/idpf/idpf_ethtool.c    |    8 +-
 drivers/net/ethernet/intel/idpf/idpf_lib.c    |   10 +-
 drivers/net/ethernet/intel/idpf/idpf_txrx.c   |  451 ++++++-
 .../net/ethernet/intel/idpf/idpf_virtchnl.c   | 1160 +++++++++++------
 drivers/net/ethernet/intel/idpf/xdp.c         |   44 +-
 drivers/net/ethernet/intel/idpf/xsk.c         |  633 +++++++++
 12 files changed, 1977 insertions(+), 477 deletions(-)  create mode 100644
Tested-by: Ramu R <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help