Message ID | 20241114-skb_buffers_v2-v3-0-9be9f52a8b69@debian.org (mailing list archive) |
---|---|
Headers | show |
Series | net: netpoll: Improve SKB pool management | expand |
Hello: This series was applied to netdev/net-next.git (main) by Jakub Kicinski <kuba@kernel.org>: On Thu, 14 Nov 2024 03:00:10 -0800 you wrote: > The netpoll subsystem pre-allocates 32 SKBs in a pool for emergency use > during out-of-memory conditions. However, the current implementation has > several inefficiencies: > > * The SKB pool, once allocated, is never freed: > * Resources remain allocated even after netpoll users are removed > * Failed initialization can leave pool populated forever > * The global pool design makes resource tracking difficult > > [...] Here is the summary with links: - [net-next,v3,1/2] net: netpoll: Individualize the skb pool https://git.kernel.org/netdev/net-next/c/221a9c1df790 - [net-next,v3,2/2] net: netpoll: flush skb pool during cleanup https://git.kernel.org/netdev/net-next/c/6c59f16f1770 You are awesome, thank you!
The netpoll subsystem pre-allocates 32 SKBs in a pool for emergency use during out-of-memory conditions. However, the current implementation has several inefficiencies: * The SKB pool, once allocated, is never freed: * Resources remain allocated even after netpoll users are removed * Failed initialization can leave pool populated forever * The global pool design makes resource tracking difficult This series addresses these issues through three patches: Patch 1 ("net: netpoll: Individualize the skb pool"): - Replace global pool with per-user pools in netpoll struct Patch 2 ("net: netpoll: flush skb pool during cleanup"): - Properly free pool resources during netconsole cleanup These changes improve resource management and make the code more maintainable. As a side benefit, the improved structure would allow netpoll to be modularized if desired in the future. What is coming next? Once this patch is integrated, I am planning to have the SKBs being refilled outside of hot (send) path, in a work thread. Signed-off-by: Breno Leitao <leitao@debian.org> --- Changelog: v3: * Use the skb_queue_purge_reason() helper instead of dropping the skb pool manually. (Jakub) v2: * Drop the very first patch from v1 ("net: netpoll: Defer skb_pool population until setup success") (Jakub) * Move skb_queue_head_init() to the first patch, where it belongs to (Jakub) * https://lore.kernel.org/all/20241107-skb_buffers_v2-v2-0-288c6264ba4f@debian.org/ v1: * https://lore.kernel.org/all/20241025142025.3558051-1-leitao@debian.org/ - Link to v2: https://lore.kernel.org/r/20241107-skb_buffers_v2-v2-0-288c6264ba4f@debian.org --- Breno Leitao (2): net: netpoll: Individualize the skb pool net: netpoll: flush skb pool during cleanup include/linux/netpoll.h | 1 + net/core/netpoll.c | 45 ++++++++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 19 deletions(-) --- base-commit: a71c69f51d1119db5f7812b35f16e8ef7786b3f2 change-id: 20241107-skb_buffers_v2-f3e626100eda Best regards,