> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Alexander Lobakin > Sent: Thursday, September 11, 2025 9:52 PM > To: [email protected] > Cc: Lobakin, Aleksander <[email protected]>; Kubiak, Michal > <[email protected]>; Fijalkowski, Maciej > <[email protected]>; Nguyen, Anthony L > <[email protected]>; Kitszel, Przemyslaw > <[email protected]>; Andrew Lunn <[email protected]>; > David S. Miller <[email protected]>; Eric Dumazet > <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni > <[email protected]>; Alexei Starovoitov <[email protected]>; Daniel > Borkmann <[email protected]>; Simon Horman <[email protected]>; > NXNE CNSE OSDT ITP Upstreaming > <[email protected]>; [email protected]; > [email protected]; [email protected] > 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 <[email protected]>
