Re: [PATCH printk v5 6/6] printk: reimplement log_cont using record extension

From: John Ogness
Date: Fri Sep 25 2020 - 18:59:56 EST


On 2020-09-25, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> 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