Re: [syzbot? printk?] no WARN_ON() messages printed before "Kernel panic - not syncing: panic_on_warn set ..."

From: Tetsuo Handa
Date: Thu May 09 2019 - 06:41:53 EST


On 2019/05/09 19:18, Sergey Senozhatsky wrote:
> What are these lines right before the kernel panic output?
> TTY writes (user space logging)?

I guess that the user space is calling printf() on stdout
which will be readable as console output.

>
>
> 03:54:05 executing program 5:
> syz_mount_image$xfs(&(0x7f0000000000)='xfs\x00', &(0x7f0000000040)='./file0\x00', 0x0, 0x0, 0x0, 0xe003, &(0x7f00000005c0)={[{@nolargeio='nolargeio'}]})
>
> 03:54:06 executing program 2:
> syz_emit_ethernet(0x66, &(0x7f0000000080)={@local, @random="029cce98941b", [], {@ipv6={0x86dd, {0x0, 0x6, 'v`Q', 0x30, 0x3a, 0xffffffffffffffff, @remote={0xfe, 0x80, [0x29c, 0x0, 0x700, 0x5], 0xffffffffffffffff}, @mcast2={0xff, 0x2, [0x0, 0xfffffffffffff000]}, {[], @icmpv6=@dest_unreach={0xffffff86, 0x0, 0x0, 0x0, [0x7], {0x0, 0x6, "c5961e", 0x0, 0x0, 0x0, @mcast1={0xff, 0x1, [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x8906], 0x8200}, @mcast2}}}}}}}, 0x0)
>
> [ 2396.035331][T10223] Kernel panic - not syncing: panic_on_warn set ...
> [ 2396.042217][T10223] CPU: 0 PID: 10223 Comm: syz-executor.1 Not tainted 5.1.0-next-20190507 #2
>
>
> Hmm... Dunno... Don't really have any explanations yet...
>
> Can you add
>
> if (oops_in_progress)
> return IRQ_HANDLED;
>
> to you console driver's IRQ handler (xmit TX/RX path)? Just to
> check if this will change anything...

The first userspace timestamp available is

03:51:19 executing program 2:
syz_emit_ethernet(0x66, &(0x7f0000000080)={@local, @random="029cce98941b", [], {@ipv6={0x86dd, {0x0, 0x6, 'v`Q', 0x30, 0x3a, 0xffffffffffffffff, @remote={0xfe, 0x80, [0x29c, 0x0, 0x700, 0x5], 0xffffffffffffffff}, @mcast2={0xff, 0x2, [0x0, 0xfffffffffffff000]}, {[], @icmpv6=@dest_unreach={0xffffff86, 0x0, 0x0, 0x0, [0x7], {0x0, 0x6, "c5961e", 0x0, 0x0, 0xf5ffffff00000000, @mcast1={0xff, 0x1, [0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x3], 0x8200}, @mcast2}}}}}}}, 0x0)

which means that there was no printk() message for nearly 3 minutes.
Can't be oops_in_progress for such long period.

Since printk() timestamp says that the uptime is nearly 40 minutes, I think
that something changed console loglevel (in a way console_verbose() from
panic() can restore) many minutes ago from the crash...