On 11/8/2023 5:52 PM, Jakub Kicinski wrote:
On Wed, 8 Nov 2023 13:30:21 -0800 Nelson, Shannon wrote:
Another source of a bug like this could be that your driver does not in
fact call xdp_do_flush() before exiting its NAPI cycle, so that there
will be packets from the previous cycle in the bq queue, in which case
the assumption mentioned in the linked document obviously breaks down.
But that would also be a driver bug :)
We do call the xdp_do_flush() at the end of the NAPI cycle, just before
calling napi_complete_done().
Just to be sure - flush has to happen on every cycle, not only
before calling napi_complete_done().
Ah, good catch. The notes in redirect.html say "Before exiting its NAPI
loop" and "must be called before napi_complete_done()". I interpreted
those together.
We'll make sure we do the flush at the end of every budget cycle and see
what happens.
Thanks all. This is exactly why talking out your problems with others
is a very good thing. And yes, this eventually will make it into an
upstream patch set - after we do a bunch more testing.
Cheers,
sln