Re: [PATCH net] skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too

From: Alexander Lobakin
Date: Fri Jan 15 2021 - 09:35:50 EST


From: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Fri, 15 Jan 2021 15:28:37 +0100

> On Fri, Jan 15, 2021 at 12:55 AM Alexander Lobakin <alobakin@xxxxx> wrote:
>>
>> Commit 3226b158e67c ("net: avoid 32 x truesize under-estimation for
>> tiny skbs") ensured that skbs with data size lower than 1025 bytes
>> will be kmalloc'ed to avoid excessive page cache fragmentation and
>> memory consumption.
>> However, the same issue can still be achieved manually via
>> __netdev_alloc_skb(), where the check for size hasn't been changed.
>> Mirror the condition from __napi_alloc_skb() to prevent from that.
>>
>> Fixes: 3226b158e67c ("net: avoid 32 x truesize under-estimation for tiny skbs")
>
> No, this tag is wrong, if you fix a bug, bug is much older than linux-5.11
>
> My fix was about GRO head and virtio_net heads, both using pre-sized
> small buffers.
>
> You want to fix something else, and this is fine, because some drivers
> are unfortunately
> doing copy break ( at the cost of additional copy, even for packets
> that might be consumed right away)

You're right, it's about copybreak. I thought about wrong "Fixes"
right after sending, but... Sorry.
Will send v2 soon.

Thanks,
Al