[PATCH net-next v2 0/4] netconsole: Optimize console registration and improve testing

Breno Leitao posted 4 patches 8 months, 1 week ago
There is a newer version of this series
drivers/net/netconsole.c                           | 61 +++++++++++++++++++---
.../selftests/drivers/net/lib/sh/lib_netcons.sh    | 27 ++++++++--
.../testing/selftests/drivers/net/netcons_basic.sh | 50 +++++++++++-------
3 files changed, 107 insertions(+), 31 deletions(-)
[PATCH net-next v2 0/4] netconsole: Optimize console registration and improve testing
Posted by Breno Leitao 8 months, 1 week ago
During performance analysis of console subsystem latency, I discovered that
netconsole registers console handlers even when no active targets exist.
These orphaned console handlers are invoked on every printk() call, get
the lock, iterate through empty target lists, and consume CPU cycles
without performing any useful work.

This patch series addresses the inefficiency by:

1. Implementing dynamic console registration/unregistration based on target
   availability, ensuring console handlers are only active when needed
2. Adding automatic cleanup of unused console registrations when targets
   are disabled or removed
3. Extending the selftest suite to cover non-extended console format,
   which was previously untested

The optimization reduces printk() overhead by eliminating unnecessary
function calls and list traversals when netconsole targets are not
configured, improving overall system performance during heavy logging
scenarios.

---
Changes in v2:
- Added selftests to test the new mechanism
- Unregister the console if the last target got disabled
- Sending to net-next instead of net (Jakub)
- Link to v1: https://lore.kernel.org/r/20250528-netcons_ext-v1-1-69f71e404e00@debian.org

---
Breno Leitao (4):
      netconsole: Only register console drivers when targets are configured
      netconsole: Add automatic console unregistration on target removal
      selftests: netconsole: Do not exit from inside the validation function
      selftests: netconsole: Add support for basic netconsole target format

 drivers/net/netconsole.c                           | 61 +++++++++++++++++++---
 .../selftests/drivers/net/lib/sh/lib_netcons.sh    | 27 ++++++++--
 .../testing/selftests/drivers/net/netcons_basic.sh | 50 +++++++++++-------
 3 files changed, 107 insertions(+), 31 deletions(-)
---
base-commit: 914873bc7df913db988284876c16257e6ab772c6
change-id: 20250528-netcons_ext-572982619bea

Best regards,
-- 
Breno Leitao <leitao@debian.org>
Re: [PATCH net-next v2 0/4] netconsole: Optimize console registration and improve testing
Posted by Jakub Kicinski 8 months, 1 week ago
On Mon, 02 Jun 2025 03:34:40 -0700 Breno Leitao wrote:
> During performance analysis of console subsystem latency, I discovered that
> netconsole registers console handlers even when no active targets exist.
> These orphaned console handlers are invoked on every printk() call, get
> the lock, iterate through empty target lists, and consume CPU cycles
> without performing any useful work.
> 
> This patch series addresses the inefficiency by:
> 
> 1. Implementing dynamic console registration/unregistration based on target
>    availability, ensuring console handlers are only active when needed
> 2. Adding automatic cleanup of unused console registrations when targets
>    are disabled or removed
> 3. Extending the selftest suite to cover non-extended console format,
>    which was previously untested
> 
> The optimization reduces printk() overhead by eliminating unnecessary
> function calls and list traversals when netconsole targets are not
> configured, improving overall system performance during heavy logging
> scenarios.

Ah, I wasn't very clear, full form letter at the end.

But also the tests seem to have failed now:
https://netdev.bots.linux.dev/contest.html?branch=net-next-2025-06-02--12-00&executor=vmksft-net-drv&pw-n=0&pass=0


## Form letter - net-next-closed

Linus has already merged our PR with features for v6.16.
net-next is closed for new drivers, features, code refactoring and
optimizations for the remained for the merge window.

Please repost when net-next reopens after June 9th.

RFC patches sent for review only are obviously welcome at any time.

See:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html#development-cycle
-- 
pw-bot: defer
pv-bot: closed