[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250924175230.1290529-1-anthony.l.nguyen@intel.com>
Date: Wed, 24 Sep 2025 10:52:23 -0700
From: Tony Nguyen <anthony.l.nguyen@...el.com>
To: davem@...emloft.net,
kuba@...nel.org,
pabeni@...hat.com,
edumazet@...gle.com,
andrew+netdev@...n.ch,
netdev@...r.kernel.org
Cc: Tony Nguyen <anthony.l.nguyen@...el.com>,
aleksander.lobakin@...el.com,
michal.kubiak@...el.com,
maciej.fijalkowski@...el.com,
magnus.karlsson@...el.com,
przemyslaw.kitszel@...el.com,
ast@...nel.org,
daniel@...earbox.net,
hawk@...nel.org,
john.fastabend@...il.com,
horms@...nel.org,
sdf@...ichev.me,
nxne.cnse.osdt.itp.upstreaming@...el.com,
bpf@...r.kernel.org
Subject: [PATCH net-next 0/5][pull request] idpf: add XSk support
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
Powered by blists - more mailing lists