diff options
author | Paolo Abeni <pabeni@redhat.com> | 2025-02-18 21:29:40 +0300 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2025-02-20 12:53:25 +0300 |
commit | 6bc7e4eb0499562ccd291712fd7be0d1a5aad00a (patch) | |
tree | e523c2830703947257eb0a2e8cc1ce41bd4e227b /tools/perf/scripts/python/syscall-counts.py | |
parent | 14ad6ed30a10afbe91b0749d6378285f4225d482 (diff) | |
download | linux-6bc7e4eb0499562ccd291712fd7be0d1a5aad00a.tar.xz |
Revert "net: skb: introduce and use a single page frag cache"
After the previous commit is finally safe to revert commit dbae2b062824
("net: skb: introduce and use a single page frag cache"): do it here.
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 recent updates
in the affected code.
Suggested-by: Eric Dumazet <edumazet@google.com>
Fixes: dbae2b062824 ("net: skb: introduce and use a single page frag cache")
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions