On Wed, 19 Feb 2025 09:28:09 +0100 Greg Kroah-Hartman wrote:
6.13-stable review patch. If anyone has any objections, please let me know.
From: Paolo Abeni pabeni@redhat.com
[ Upstream commit 011b0335903832facca86cd8ed05d7d8d94c9c76 ]
This reverts commit dbae2b062824 ("net: skb: introduce and use a single page frag cache"). The intended goal of such change was to counter a performance regression introduced by commit 3226b158e67c ("net: avoid 32 x truesize under-estimation for tiny skbs").
Unfortunately, the blamed commit introduces another regression for the virtio_net driver. Such a driver calls napi_alloc_skb() with a tiny size, so that the whole head frag could fit a 512-byte block.
The single page frag cache uses a 1K fragment for such allocation, and the additional overhead, under small UDP packets flood, makes the page allocator a bottleneck.
Thanks to commit bf9f1baa279f ("net: add dedicated kmem_cache for typical/small skb->head"), this revert does not re-introduce the original regression. Actually, in the relevant test on top of this revert, I measure a small but noticeable positive delta, just above noise level.
The revert itself required some additional mangling due to the introduction of the SKB_HEAD_ALIGN() helper and local lock infra in the affected code.
Suggested-by: Eric Dumazet edumazet@google.com Fixes: dbae2b062824 ("net: skb: introduce and use a single page frag cache") Signed-off-by: Paolo Abeni pabeni@redhat.com Link: https://patch.msgid.link/e649212fde9f0fdee23909ca0d14158d32bb7425.1738877290... Signed-off-by: Jakub Kicinski kuba@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org
As already pointed out this was reverted