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: > > On Mon, 2026-01-05 at 14:08 +0000, Daniel Thompson wrote: > > > On Mon, Jan 05, 2026 at 12:52:14PM +0000, Daniel Thompson wrote: > > > > Hi Marcos > > > > > > > > On Sat, Dec 27, 2025 at 09:16:07AM -0300, Marcos Paulo de Souza > > > > wrote: > > > > > 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
