6b93bb41f6
The current console/printk subsystem is protected by a Big Kernel Lock, (aka console_lock) which has ill defined semantics and is more or less stateless. This puts severe limitations on the console subsystem and makes forced takeover and output in emergency and panic situations a fragile endeavour that is based on try and pray. The goal of non-BKL (nbcon) consoles is to break out of the console lock jail and to provide a new infrastructure that avoids the pitfalls and also allows console drivers to be gradually converted over. The proposed infrastructure aims for the following properties: - Per console locking instead of global locking - Per console state that allows to make informed decisions - Stateful handover and takeover As a first step, state is added to struct console. The per console state is an atomic_t using a 32bit bit field. Reserve state bits, which will be populated later in the series. Wire it up into the console register/unregister functionality. It was decided to use a bitfield because using a plain u32 with mask/shift operations resulted in uncomprehensible code. Co-developed-by: John Ogness <john.ogness@linutronix.de> Signed-off-by: John Ogness <john.ogness@linutronix.de> Signed-off-by: Thomas Gleixner (Intel) <tglx@linutronix.de> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Petr Mladek <pmladek@suse.com> Link: https://lore.kernel.org/r/20230916192007.608398-2-john.ogness@linutronix.de
10 lines
349 B
Makefile
10 lines
349 B
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
obj-y = printk.o
|
|
obj-$(CONFIG_PRINTK) += printk_safe.o nbcon.o
|
|
obj-$(CONFIG_A11Y_BRAILLE_CONSOLE) += braille.o
|
|
obj-$(CONFIG_PRINTK_INDEX) += index.o
|
|
|
|
obj-$(CONFIG_PRINTK) += printk_support.o
|
|
printk_support-y := printk_ringbuffer.o
|
|
printk_support-$(CONFIG_SYSCTL) += sysctl.o
|