All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/5][pull request] idpf: add XSk support
@ 2025-09-24 17:52 Tony Nguyen
  2025-09-24 17:52 ` [PATCH net-next 1/5] idpf: add virtchnl functions to manage selected queues Tony Nguyen
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Tony Nguyen @ 2025-09-24 17:52 UTC (permalink / raw)
  To: davem, kuba, pabeni, edumazet, andrew+netdev, netdev
  Cc: Tony Nguyen, aleksander.lobakin, michal.kubiak,
	maciej.fijalkowski, magnus.karlsson, przemyslaw.kitszel, ast,
	daniel, hawk, john.fastabend, horms, sdf,
	nxne.cnse.osdt.itp.upstreaming, bpf

Alexander Lobakin says:

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 overhead left is memcpy(). The rest is at least comparable.
---
IWL: https://lore.kernel.org/intel-wired-lan/20250911162233.1238034-1-aleksander.lobakin@intel.com/

The following are changes since commit dc1dea796b197aba2c3cae25bfef45f4b3ad46fe:
  tcp: Remove stale locking comment for TFO.
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 200GbE

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 +
 .../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 ++++++-
 drivers/net/ethernet/intel/idpf/idpf_txrx.h   |   72 +-
 .../net/ethernet/intel/idpf/idpf_virtchnl.c   | 1160 +++++++++++------
 .../net/ethernet/intel/idpf/idpf_virtchnl.h   |   32 +-
 drivers/net/ethernet/intel/idpf/xdp.c         |   44 +-
 drivers/net/ethernet/intel/idpf/xdp.h         |    3 +
 drivers/net/ethernet/intel/idpf/xsk.c         |  633 +++++++++
 drivers/net/ethernet/intel/idpf/xsk.h         |   33 +
 12 files changed, 1977 insertions(+), 477 deletions(-)
 create mode 100644 drivers/net/ethernet/intel/idpf/xsk.c
 create mode 100644 drivers/net/ethernet/intel/idpf/xsk.h

-- 
2.47.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-09-26 22:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-24 17:52 [PATCH net-next 0/5][pull request] idpf: add XSk support Tony Nguyen
2025-09-24 17:52 ` [PATCH net-next 1/5] idpf: add virtchnl functions to manage selected queues Tony Nguyen
2025-09-24 17:52 ` [PATCH net-next 2/5] idpf: add XSk pool initialization Tony Nguyen
2025-09-24 17:52 ` [PATCH net-next 3/5] idpf: implement XSk xmit Tony Nguyen
2025-09-24 17:52 ` [PATCH net-next 4/5] idpf: implement Rx path for AF_XDP Tony Nguyen
2025-09-24 17:52 ` [PATCH net-next 5/5] idpf: enable XSk features and ndo_xsk_wakeup Tony Nguyen
2025-09-26 22:20 ` [PATCH net-next 0/5][pull request] idpf: add XSk support patchwork-bot+netdevbpf

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.