]> www.infradead.org Git - users/dwmw2/linux.git/commit
igb: Add AF_XDP zero-copy Tx support
authorSriram Yagnaraman <sriram.yagnaraman@est.tech>
Mon, 6 Jan 2025 22:19:14 +0000 (14:19 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 8 Jan 2025 02:14:09 +0000 (18:14 -0800)
commitf8e284a02afc9797d5f626fc7dfb6f7d381d4e77
treefd6d5fb80c2fc2c7fbcaf8b815b5519d8350fc94
parent2c6196013f84651772388a86dfd4bb033d0c0d45
igb: Add AF_XDP zero-copy Tx support

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.yagnaraman@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 <kurt@linutronix.de>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: George Kuruvinakunnel <george.kuruvinakunnel@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20250106221929.956999-7-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/intel/igb/igb.h
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/intel/igb/igb_xsk.c