Thread (50 messages) flat view 50 messages, 7 authors, 2026-02-20

Re: [PATCH 00/19] printk cleanup - part 3

From: Petr Mladek <pmladek@suse.com>
Date: 2026-01-14 08:20:27
Also in: linux-arm-kernel, linux-fsdevel, linux-hardening, linux-m68k, linux-serial, linux-um, lkml, netdev, sparclinux

On Tue 2026-01-13 21:32:33, Marcos Paulo de Souza wrote:
On Tue, 2026-01-13 at 09:41 -0300, Marcos Paulo de Souza wrote:
quoted
On Mon, 2026-01-05 at 14:08 +0000, Daniel Thompson wrote:
quoted
On Mon, Jan 05, 2026 at 12:52:14PM +0000, Daniel Thompson wrote:
quoted
Hi Marcos

On Sat, Dec 27, 2025 at 09:16:07AM -0300, Marcos Paulo de Souza
wrote:
quoted
The parts 1 and 2 can be found here [1] and here[2].

The changes proposed in this part 3 are mostly to clarify the
usage of
the interfaces for NBCON, and use the printk helpers more
broadly.
Besides it, it also introduces a new way to register consoles
and drop thes the CON_ENABLED flag. It seems too much, but in
reality
the changes are not complex, and as the title says, it's
basically a
cleanup without changing the functional changes.
I ran this patchset through the kgdb test suite and I'm afraid it
is
reporting functional changes.

Specifically the earlycon support for kdb has regressed (FWIW the
problem bisects down to the final patch in the series where
CON_ENABLED
is removed).

Reproduction on x86-64 KVM outside of the test suite should be
easy:

    make defconfig
    scripts/config \
        --enable DEBUG_INFO \
	--enable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT \
	--enable DEBUG_FS \
	--enable KALLSYMS_ALL \
	--enable MAGIC_SYSRQ \
	--enable KGDB \
	--enable KGDB_TESTS \
	--enable KGDB_KDB \
	--enable KDB_KEYBOARD \
	--enable LKDTM \
	--enable SECURITY_LOCKDOWN_LSM
    make olddefconfig
    make -j$(nproc)
    qemu-system-x86_64 \
        -m 1G -smp 2 -nographic \
	-kernel arch/x86/boot/bzImage \
	-append "console=ttyS0,115200 kgdboc=ttyS0
earlycon=uart8250,io,0x3f8 kgdboc_earlycon kgdbwait"
Actually I realized there was a simpler reproduction (hinted at by
the
missing "printk: legacy bootconsole [uart8250] enabled" in the
regressed
case). It looks like the earlycon simply doesn't work and that
means
the
reproduction doesn't require anything related to kgdb at all.
Simply:

    make defconfig
    make -j$(nproc)
    qemu-system-x86_64 -m 1G -smp 2 -nographic -kernel
arch/x86/boot/bzImage \
        -append "earlycon=uart8250,io,0x3f8"

With the part 3 patchset applied I get no output from the earlycon
(without the patch set I get the early boot messages which, as
expected,
stop when tty0 comes up).
Hi Daniel, sorry for the late reply! Lots of things to check lately
:)

Ok, I reproduced here, thanks a lot for testing kgdboc, it's a quick
way to check that the new register_console_force is not working. Let
me
take a look to find what's wrong. Thanks a lot for finding this
issue!
Ok, I did a bisect and found out that the issue lies in the last
commit, where CON_ENABLED was removed. After it, I then checked what
was wrong, since everything was being plumbed correctly (tm), and then
I found that it was not:

On _register_console, the function try_enable_default_console is called
when there are not registered consoles, and then it sets CON_ENABLED
for the console. Later on, try_enable_preferred_console it checks if
the console was specified by the user, and at the same time it had
CON_ENABLED set.

It worked by chance, but now, we don't have this flag anymore, and then
we are not _marking_ the console on try_enable_default_console so
try_enable_preferred_console returns ENOENT.
Great catch! Yeah, it worked just by chance.
So, without any console kgdb is activated much later in the boot
process, as you found it.

I talked with Petr Mladek and it would need to rework the way that we
register a console, and he's already working on it.
Yes, I have some patches in early stages of developnent of another
feature which would help here.
For now I believe
that we could take a look in all the patches besides the last one that
currently breaks the earlycon with kgdb and maybe other usecases.
I agree. I am going to review this patchset first. Then I'll try to
clean up the patches which remove the ugly side effect from
try_enable_preferred_console(). Then we could discuss how
to move forward. It might make sense to push this patchset
first without the last patch...
Sorry for not catching this issue before. I'll use kgdb next time to
make sure that it keeps working :)
Do not worry at all. It was a well hidden catch. It is great that
Daniel found the regression in time...

Best Regards,
Petr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help