On Fri, Aug 16, 2024 at 11:24:05AM +0200, Kurt Kanzenbach wrote: > From: Sriram Yagnaraman <sriram.yagnaraman@xxxxxxxx> > > 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@xxxxxxxx> > [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()] > Signed-off-by: Kurt Kanzenbach <kurt@xxxxxxxxxxxxx> > --- > 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 | 59 ++++++++++++++++++++++++++++++ > 3 files changed, 112 insertions(+), 10 deletions(-) > Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@xxxxxxxxx>