[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250902-netpoll_untangle_v3-v1-0-51a03d6411be@debian.org>
Date: Tue, 02 Sep 2025 07:36:22 -0700
From: Breno Leitao <leitao@...ian.org>
To: Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Simon Horman <horms@...nel.org>,
Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
Clark Williams <clrkwllms@...nel.org>, Steven Rostedt <rostedt@...dmis.org>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-rt-devel@...ts.linux.dev, kernel-team@...a.com, efault@....de,
calvin@...nvd.org, Breno Leitao <leitao@...ian.org>
Subject: [PATCH 0/7] netpoll: Untangle netpoll and netconsole
This patch series refactors the netpoll and netconsole subsystems to achieve
better separation of concerns and improved code modularity. The main goal is
to move netconsole-specific functionality out of the generic netpoll core,
making netpoll a cleaner, more focused transmission-only interface.
Current problems:
* SKB pool is only used by netconsole, but, available in all netpoll
instances, wasting memory.
* Given, netpoll populates the SKB and send the package for
netconsole, there is no way to have a fine grained lock, to protect
only the SKB population (specifically the netconsole target ->buf).
* In the future (when netconsole supports nbcon), the SKB will be
populated and the TX deferred, which is impossible in the current
configuration.
Key architectural changes:
1. SKB Pool Management Migration: Move all SKB pool management from netpoll
core to netconsole driver, since netconsole is the sole user of this
functionality. This reduces memory overhead for other netpoll users.
2. UDP Packet Construction Separation: Move UDP/IP packet preparation logic
from netpoll to netconsole, making netpoll purely SKB transmission-focused.
3. Function Splitting: Split netpoll_send_udp() into separate preparation
(netpoll_prepare_skb) and transmission (netpoll_send_skb) operations for
better modularity and locking strategies.
4. Cleanup Consolidation: Move netpoll_cleanup() implementation to
netconsole since it's the only caller, centralizing cleanup logic.
5. Enable netconsole to support nbcon, as being discussed in [1].
* I have a PoC[2] for migrating netconsole to nbcon, which depends on
this chage.
The series maintains full backward compatibility, and shouldn't have any
visible change for the user.
Link: https://lore.kernel.org/all/tgp5ddd2xdcvmkrhsyf2r6iav5a6ksvxk66xdw6ghur5g5ggee@cuz2o53younx/ [1]
Link: https://lore.kernel.org/all/b2qps3uywhmjaym4mht2wpxul4yqtuuayeoq4iv4k3zf5wdgh3@tocu6c7mj4lt/ [2]
To: Andrew Lunn <andrew+netdev@...n.ch>
To: "David S. Miller" <davem@...emloft.net>
To: Eric Dumazet <edumazet@...gle.com>
To: Jakub Kicinski <kuba@...nel.org>
To: Paolo Abeni <pabeni@...hat.com>
To: Simon Horman <horms@...nel.org>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
To: Clark Williams <clrkwllms@...nel.org>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: netdev@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Cc: linux-rt-devel@...ts.linux.dev
Cc: kernel-team@...a.com
Cc: efault@....de
Cc: calvin@...nvd.org
Signed-off-by: Breno Leitao <leitao@...ian.org>
---
Breno Leitao (7):
netconsole: Split UDP message building and sending operations
netpoll: move prepare skb functions to netconsole
netpoll: Move netpoll_cleanup implementation to netconsole
netpoll: Export zap_completion_queue
netpoll: Move SKBs pool to netconsole side
netpoll: Move find_skb() to netconsole and make it static
netpoll: Flush skb_pool as part of netconsole cleanup
drivers/net/netconsole.c | 273 +++++++++++++++++++++++++++++++++++++++++++++--
include/linux/netpoll.h | 2 +-
net/core/netpoll.c | 248 +-----------------------------------------
3 files changed, 268 insertions(+), 255 deletions(-)
---
base-commit: 2fd4161d0d2547650d9559d57fc67b4e0a26a9e3
change-id: 20250902-netpoll_untangle_v3-e9f41781334e
Best regards,
--
Breno Leitao <leitao@...ian.org>
Powered by blists - more mailing lists