Re: [PATCH net-next] tun: use xdp_get_frame_len()

From: Jesper Dangaard Brouer
Date: Thu May 08 2025 - 10:17:23 EST




On 08/05/2025 15.29, Willem de Bruijn wrote:
Jon Kohler wrote:


On May 7, 2025, at 4:56 PM, Willem de Bruijn <willemdebruijn.kernel@xxxxxxxxx> wrote:


Jon Kohler wrote:
Use xdp_get_frame_len helper to ensure xdp frame size is calculated
correctly in both single buffer and multi buffer configurations.

Not necessarily opposed, but multi buffer is not actually possible
in this code path, right?

tun_put_user_xdp only copies xdp_frame->data, for one.

Else this would also be fix, not net-next material.

Correct, this is a prep patch for future multi buffer support,
I’m not aware of any path that can currently do that thru
this code.


This is a good example of a performance paper-cut, from my rant.
Adding xdp_get_frame_len() where it is not needed, adds extra code,
in-form of an if-statement and a potential touching of a colder
cache-line in skb_shared_info area.


The reason for pursuing multi-buffer is to allow vhost/net
batching to work again for large payloads.

I was not aware of that context. I'd add a comment to that in the
commit message, and send it as part of that series.

It need to part of that series, as that batching change should bring a
larger performance benefit that outweighs the paper-cut.

AFAICR there is also some dual packet handling code path for XDP in
vhost_net/tun. I'm also willing to take the paper-cut, for cleaning
that up.

--Jesper