在 2023/1/14 下午2:24, Jakub Kicinski 写道:
On Fri, 13 Jan 2023 16:00:08 +0800 Heng Qi wrote:
When single-buffer xdp is loaded, the size of the buffer filled each time
is 'sz = (PAGE_SIZE - headroom - tailroom)', which is the maximum packet
length that the driver allows the device to pass in. Otherwise, the packet
with a length greater than sz will come in, so num_buf will be greater than
or equal to 2, and then xdp_linearize_page() will be performed and the
packet will be dropped because the total length is greater than PAGE_SIZE.
So the maximum value of MTU for single-buffer xdp is 'max_sz = sz - ETH_HLEN'.
drivers/net/virtio_net.c:3111:56: warning: format specifies type 'unsigned long' but the argument has type 'unsigned int' [-Wformat]
netdev_warn(dev, "XDP requires MTU less than %lu\n", max_sz);
~~~ ^~~~~~
%u
The corresponding netdev_warn are split into [PATCH net-next v4 03/10],
and I will reorganize the patches [PATCH net-next v4 02/10] and [PATCH
net-next v4 03/10] to be more independent.
Thanks.