* [RFC] netconsole: plan for a safe atomic write
@ 2026-11-13 13:41 Breno Leitao
0 siblings, 0 replies; only message in thread
From: Breno Leitao @ 2026-11-13 13:41 UTC (permalink / raw)
To: john.ogness, pmladek, kuba, gustavold; +Cc: linux-kernel, printk, netdev
Hello,
netconsole is CON_NBCON_ATOMIC_UNSAFE, so write_atomic() only runs at
the very end of panic. There is a desired to have called safe atomic
printing[1].
This is the plan I would like to agree on before posting patches:
1. Now that we have one console per target, use one lock per
console/target.
- printk holds the target's device_lock around write_thread(),
write_atomic() runs under the console ownership, and stopping
a target takes both. target_list_lock and the cleanup list go away:
the list changes under dynamic_netconsole_mutex and RTNL, and is
walked under either.
2. A per-target field to track atomic writes.
- In that mode, skbs come only from a pool popped without a lock and
refilled through irq_work.
3. A try-once netpoll transmit, as Jakub outlined [2]:
- One HARD_TX_TRYLOCK, then busy, with no polling, freeing or
wakeups, which can deadlock under rq->lock[3].
- It refuses when this CPU owns the queue (netif_tx_owned()), is in
the device's NAPI poll (netpoll_owner_active()), or is in NMI on
PREEMPT_RT.
This does not make ndo_start_xmit() safe, so the flag stays until
drivers can opt in to atomic transmit.
It is still unclear to me whether write_atomic() should depend on the
context (regular NMI/panic):
* For regular NMI use the try lock as best effort
* Ignore the locks only in the final panic flush. (unclear if this is
an option)
Is this a reasonable plan, or, there are some missing parts I am not
seeing?
Thanks,
--breno
[1] https://lore.kernel.org/all/874ie4y5mw.fsf@jogness.linutronix.de/
[2] https://lore.kernel.org/all/20260617132127.645534d1@kernel.org/
[3] https://lore.kernel.org/all/20260610183621.3915271-1-vlad.wing@gmail.com/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-13 13:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 13:41 [RFC] netconsole: plan for a safe atomic write Breno Leitao
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.