Re: [PATCHv2] printk: wake up klogd in vprintk_emit

From: Petr Mladek
Date: Thu Apr 19 2018 - 06:02:58 EST


On Thu 2018-04-19 10:42:50, Sergey Senozhatsky wrote:
> We wake up klogd very late - only when current console_sem owner
> is done pushing pending kernel messages to the serial/net consoles.
> In some cases this results in lost syslog messages, because kernel
> log buffer is a circular buffer and if we don't wakeup syslog long
> enough there are chances that logbuf simply will wrap around.
>
> The patch moves the klog wake up call to vprintk_emit(), which is
> the only legit way for a kernel message to appear in the logbuf,
> right before we attempt to grab the console_sem (possibly spinning
> on it waiting for the hand off) and call console drivers.

The last two lines need an update. What about?

"right after the attempt to handle consoles. As a result, klog
will get waken either after flushing the new message to consoles
or immediately when consoles are still busy with older messages."

Otherwise, it looks nice:

Reviewed-by: Petr Mladek <pmladek@xxxxxxxx>

Best Regards,
Petr