[PATCH printk v5 6/6] printk: reimplement log_cont using record extension
John Ogness
john.ogness at linutronix.de
Fri Sep 25 18:59:51 EDT 2020
On 2020-09-25, Marek Szyprowski <m.szyprowski at samsung.com> wrote:
> This patch landed recently in linux-next as commit f5f022e53b87
> ("printk: reimplement log_cont using record extension"). I've noticed
> that it causes a regression on my test system (ARM 32bit Samsung Exynos
> 4412-based Trats2 board). The messages are printed correctly on the
> serial console during boot, but then when I run 'dmesg' command, the log
> is truncated.
>
> Here is are the last lines of the dmesg log after this patch:
>
> [ 6.649018] Waiting 2 sec before mounting root device...
> [ 6.766423] dwc2 12480000.hsotg: new device is high-speed
> [ 6.845290] dwc2 12480000.hsotg: new device is high-speed
> [ 6.914217] dwc2 12480000.hsotg: new address 51
> [ 8.710351] RAMDISK: squashfs filesystem found at block 0
>
> The corresponding dmesg lines before applying this patch:
>
> [ 8.864320] RAMDISK: squashfs filesystem found at block 0
> [ 8.868410] RAMDISK: Loading 37692KiB [1 disk] into ram disk... /
> [ 9.071670] /
> [ 9.262498] /
> [ 9.540711] /
> [ 9.818031] done.
Ah. One of the more creative printk users...
init/do_mounts_rd.c:rd_load_image(). This is a set of LOG_CONT messages
that try to display a rotating line, complete with '\b' control
characters. The code is totally broken, but that is no excuse for printk
to break. It should be easy to reproduce on any architecture. I will
investigate it further. Thanks for reporting.
John Ogness
More information about the kexec
mailing list