On Mon, Oct 26, 2026 at 10:12:51PM +0000, Paul Moses wrote: > > > > > On Monday, October 26th, 2026 at 2:46 PM, Maciej Fijalkowski > <[email protected]> wrote: > > > On Sun, Oct 25, 2026 at 06:52:06AM +0000, Paul Moses wrote: > > > TSIP remains set on continuation descriptors, but the inline timestamp > > > header exists only in the first buffer. Stripping it from every > > > descriptor truncates split frames and can underflow short buffers. > > > > > > skb ownership cannot identify frame boundaries when XDP consumes the > > > first buffer or AF_XDP uses zero-copy. > > > > > > Track rx_in_frame per ring and update it as descriptors are consumed. > > > Strip timestamps only from first buffers, reject unsupported split > > > frames before XDP and drain continuations. Account discarded > > > descriptors against NAPI work without counting successful RX. > > > > > > Fixes: e1ed4f92a625 ("igc: Refactor Rx timestamp handling") > > > Fixes: 26575105d6ed ("igc: Add initial XDP support") > > > Fixes: fc9df2a0b520 ("igc: Enable RX via AF_XDP zero-copy") > > > Cc: [email protected] > > > Signed-off-by: Paul Moses <[email protected]> > > > --- > > > - This supersedes "igc: only strip RX timestamp header from first buffer" > > > following feedback from Simon Horman, Maciej Fijalkowski and Sashiko. > > > > > > Changes: > > > - track frame boundaries independently of skb ownership > > > - guard timestamp stripping and drain unsupported split frames > > > - cover the AF_XDP zero-copy RX path > > > --- > > > drivers/net/ethernet/intel/igc/igc.h | 1 + > > > drivers/net/ethernet/intel/igc/igc_main.c | 87 ++++++++++++++++------- > > > 2 files changed, 64 insertions(+), 24 deletions(-) > > > > Hi Paul, > > > > I think this implementation went off track. We should make sure we *never* > > enter data path for XDP/AF_XDP multi-buffer scenario until we add real > > support to it within this driver. Now you sorta handle fragmented packets > > in data path. > > > > I tried to argue with bot reports that it hallucinated for > > igc_clean_rx_irq() content (which was concise and to the point) and agreed > > the AF_XDP should *not* be exposed to any fragmented traffic, which should > > be addressed on HW RX ring configuration side, not within data path. > > > > Also this should have been a v3 with a link to previous revisions so we > > could keep track what has been changing between versions. > > > > Here's something that would address ZC fragmentation issue. Could you give > > it a spin on your side as I don't currently have igc in my setup handy.
[...] > > Looks good to me, passes basic testing, and I would rather you/intel do this > patch > > For posterity, I did email Tony with handoff notes stating I'd rather not do > the > xdp/xsk/af_xdp/fpe side of things, but hadn't heard back so I kept going. I think this was within the thread where AI hallucinated and I stepped in. If you are not fed up yet you can take your v2 and the patch I added here and send this as a change set. From my POV it would be better as you have the HW to test this against and ironically my igc card went into /dev/null's lab. >
