On Mon, 27 Jan 2025 19:29:35 +0100 Florian Bezdeka wrote:
quoted
quoted
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.
🤷️