Subject: Re: [xdp-hints] Re: [PATCH bpf-next v6 4/4] igc: Add launch time support to XDP ZC

From: Jakub Kicinski <[email-masked]>
Date: Mon, 27 Jan 2025 11:20:45 -0800

On Mon, 27 Jan 2025 19:29:35 +0100 Florian Bezdeka wrote:
> > > Yeah, I don't think we can impose UAPI restrictions on the metadata area
> > > at this point. I guess the best we can do is to educate users that they
> > > should call the timestamp kfunc before they modify the metadata?  
> > 
> > I may be misunderstanding the discussion, but I think the answer 
> > is that the driver must be fixed. The metadata-in-prepend problem
> > also exists for simple adjust head use case, so it existed since
> > early days of BPF. The driver should copy out (or parse) the metadata
> > before it invokes the XDP prog. The nfp driver does that.  
> 
> That would have to happen for each packet, without affecting ZC
> performance. How can that be achieved?

Are you asking how we can make it not affect performance?
We should really see some benchmarks before we say that it is okay
to sacrifice correctness..

> So we have at least two drivers with that problem, igc + nfp. 

To be clear nfp copies the HW metadata out before calling XDP.
So XDP program can do whatever it wants to the space before the packet.

> My main point: Enabling and implementing ZC (zero copy) mode at one
> hand, but then starting to copy the meta data for each packet doesn't
> sound reasonable.

🤷️