netconsole: Only register console drivers when targets are configured
authorBreno Leitao <leitao@debian.org>
Mon, 9 Jun 2025 09:46:26 +0000 (02:46 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 10 Jun 2025 21:21:53 +0000 (14:21 -0700)
commitbc0cb64db1c765a81f69997d5a28f539e1731bc0
tree7b29928464d9c135884ea7625acd2e498f206c7c
parent2c7e4a2663a1ab5a740c59c31991579b6b865a26
netconsole: Only register console drivers when targets are configured

The netconsole driver currently registers the basic console driver
unconditionally during initialization, even when only extended targets
are configured. This results in unnecessary console registration and
performance overhead, as the write_msg() callback is invoked for every
log message only to return early when no matching targets are found.

Optimize the driver by conditionally registering console drivers based
on the actual target configuration. The basic console driver is now
registered only when non-extended targets exist, same as the extended
console. The implementation also handles dynamic target creation through
the configfs interface.

This change eliminates unnecessary console driver registrations,
redundant write_msg() callbacks for unused console types, and associated
lock contention and target list iterations. The optimization is
particularly beneficial for systems using only the most common extended
console type.

Fixes: e2f15f9a79201 ("netconsole: implement extended console support")
Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20250609-netcons_ext-v3-1-5336fa670326@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/netconsole.c