[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <94add491-592a-4f89-9212-24e04aa09a82@intel.com>
Date: Wed, 12 Mar 2025 18:03:21 +0100
From: Alexander Lobakin <aleksander.lobakin@...el.com>
To: Maciej Fijalkowski <maciej.fijalkowski@...el.com>
CC: <intel-wired-lan@...ts.osuosl.org>, Michal Kubiak
<michal.kubiak@...el.com>, Tony Nguyen <anthony.l.nguyen@...el.com>, "Przemek
Kitszel" <przemyslaw.kitszel@...el.com>, Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, "Alexei
Starovoitov" <ast@...nel.org>, Daniel Borkmann <daniel@...earbox.net>,
"Jesper Dangaard Brouer" <hawk@...nel.org>, John Fastabend
<john.fastabend@...il.com>, Simon Horman <horms@...nel.org>,
<bpf@...r.kernel.org>, <netdev@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH net-next 04/16] libeth: add XSk helpers
From: Maciej Fijalkowski <maciej.fijalkowski@...el.com>
Date: Fri, 7 Mar 2025 11:15:56 +0100
> On Wed, Mar 05, 2025 at 05:21:20PM +0100, Alexander Lobakin wrote:
>> Add the following counterparts of functions from libeth_xdp which need
>> special care on XSk path:
>>
>> * building &xdp_buff (head and frags);
>> * running XDP prog and managing all possible verdicts;
>> * xmit (with S/G and metadata support);
>> * wakeup via CSD/IPI;
>> * FQ init/deinit and refilling.
>>
>> Xmit by default unrolls loops by 8 when filling Tx DMA descriptors.
>> XDP_REDIRECT verdict is considered default/likely(). Rx frags are
>> considered unlikely().
>> It is assumed that Tx/completion queues are not mapped to any
>> interrupts, thus we clean them only when needed (=> 3/4 of
>> descriptors is busy) and keep need_wakeup set.
>> IPI for XSk wakeup showed better performance than triggering an SW
>> NIC interrupt, though it doesn't respect NIC's interrupt affinity.
>
> Maybe introduce this with xsk support on idpf (i suppose when set after
> this one) ?
>
> Otherwise, what is the reason to have this included? I didn't check
> in-depth if there are any functions used from this patch on drivers side.
I did split libeth_xdp into two commits only to ease reviewing a bit.
There's also stuff from MichaĆ in progress which converts ice to
libeth_xdp and adds XDP to iavf... I don't want to block it by idpf,
who knows which one will go first :>
>
>>
>> Suggested-by: Maciej Fijalkowski <maciej.fijalkowski@...el.com> # lots of stuff
>> Signed-off-by: Alexander Lobakin <aleksander.lobakin@...el.com>
>> ---
>> drivers/net/ethernet/intel/libeth/Kconfig | 2 +-
>> drivers/net/ethernet/intel/libeth/Makefile | 1 +
>> drivers/net/ethernet/intel/libeth/priv.h | 11 +
>> include/net/libeth/tx.h | 10 +-
>> include/net/libeth/xdp.h | 90 ++-
>> include/net/libeth/xsk.h | 685 +++++++++++++++++++++
>> drivers/net/ethernet/intel/libeth/tx.c | 5 +-
>> drivers/net/ethernet/intel/libeth/xdp.c | 26 +-
>> drivers/net/ethernet/intel/libeth/xsk.c | 269 ++++++++
>> 9 files changed, 1067 insertions(+), 32 deletions(-)
>> create mode 100644 include/net/libeth/xsk.h
>> create mode 100644 drivers/net/ethernet/intel/libeth/xsk.c
Thanks,
Olek
Powered by blists - more mailing lists