> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of > Kurt Kanzenbach > Sent: Friday, October 18, 2024 1:40 AM > To: Nguyen, Anthony L <anthony.l.ngu...@intel.com>; Kitszel, Przemyslaw > <przemyslaw.kits...@intel.com> > Cc: David S. Miller <da...@davemloft.net>; Eric Dumazet > <eduma...@google.com>; Jakub Kicinski <k...@kernel.org>; Paolo Abeni > <pab...@redhat.com>; Alexei Starovoitov <a...@kernel.org>; Daniel > Borkmann <dan...@iogearbox.net>; Jesper Dangaard Brouer > <h...@kernel.org>; John Fastabend <john.fastab...@gmail.com>; Richard > Cochran <richardcoch...@gmail.com>; Sriram Yagnaraman > <sriram.yagnara...@ericsson.com>; Benjamin Steinke > <benjamin.stei...@woks-audio.com>; Sebastian Andrzej Siewior > <bige...@linutronix.de>; Fijalkowski, Maciej <maciej.fijalkow...@intel.com>; > intel-wired-...@lists.osuosl.org; net...@vger.kernel.org; > b...@vger.kernel.org; Sriram Yagnaraman <sriram.yagnara...@est.tech>; > Kurt Kanzenbach <k...@linutronix.de> > Subject: [Intel-wired-lan] [PATCH iwl-next v9 6/6] igb: Add AF_XDP zero-copy > Tx support > > From: Sriram Yagnaraman <sriram.yagnara...@est.tech> > > Add support for AF_XDP zero-copy transmit path. > > A new TX buffer type IGB_TYPE_XSK is introduced to indicate that the Tx frame > was allocated from the xsk buff pool, so igb_clean_tx_ring() and > igb_clean_tx_irq() can clean the buffers correctly based on type. > > igb_xmit_zc() performs the actual packet transmit when AF_XDP zero-copy is > enabled. We share the TX ring between slow path, XDP and AF_XDP zero- > copy, so we use the netdev queue lock to ensure mutual exclusion. > > Signed-off-by: Sriram Yagnaraman <sriram.yagnara...@est.tech> > [Kurt: Set olinfo_status in igb_xmit_zc() so that frames are transmitted, > Use READ_ONCE() for xsk_pool and check Tx disabled and carrier in > igb_xmit_zc(), Add FIXME for RS bit] > Signed-off-by: Kurt Kanzenbach <k...@linutronix.de> > Reviewed-by: Maciej Fijalkowski <maciej.fijalkow...@intel.com> > --- > drivers/net/ethernet/intel/igb/igb.h | 2 + > drivers/net/ethernet/intel/igb/igb_main.c | 61 > +++++++++++++++++++++++++----- > drivers/net/ethernet/intel/igb/igb_xsk.c | 63 > +++++++++++++++++++++++++++++++ > 3 files changed, 116 insertions(+), 10 deletions(-) >
Tested-by: George Kuruvinakunnel <george.kuruvinakun...@intel.com>