Re: Regression in v4.19.106 breaking waking up of readers of /proc/kmsg and /dev/kmsg

From: Steven Rostedt
Date: Sat Feb 29 2020 - 18:47:40 EST


On Sat, 29 Feb 2020 12:32:53 +0900
Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx> wrote:

> > What do folks think?
>
> Well, my 5 cents, there is nothing that prevents "too-early"
> printk_deferred() calls in the future. From that POV I'd probably
> prefer to "forbid" printk_deffered() to touch per-CPU deferred
> machinery until it's not "too early" anymore. Similar to what we
> do in printk_safe::queue_flush_work().

I agree that printk_deferred() should handle being called too early.
But the issue is with per_cpu variables correct? Not the irq_work?

We could add a flag in init/main.c after setup_per_cpu_areas() and then
just have printk_deferred() act like a normal printk(). At that point,
there shouldn't be an issue in calling printk() directly, is there?

-- Steve