[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YJP5MnkJ8pJevXM6@google.com>
Date: Thu, 6 May 2021 23:12:02 +0900
From: Sergey Senozhatsky <senozhatsky@...omium.org>
To: Petr Mladek <pmladek@...e.com>
Cc: Luo Jiaxing <luojiaxing@...wei.com>, sergey.senozhatsky@...il.com,
rostedt@...dmis.org, john.ogness@...utronix.de,
linux-kernel@...r.kernel.org, linuxarm@...wei.com,
bobo.shaobowang@...wei.com,
Sergey Senozhatsky <senozhatsky@...omium.org>
Subject: Re: [PATCH] printk: stop spining waiter when console resume to flush
prb
On (21/05/06 23:07), Sergey Senozhatsky wrote:
>
> Can we count the number of lines that we print from the `current` context
> in console_unlock() and if after N messages there is no console_lock waiter
> waiting for the `current` to handover console lock ownership, then create
> one: schedule IRQ work that will become a console lock owner, spin on
> console lock and call console_unlock() once it acquired the ownership.
> That 'artificial' console lock owner will do the same - print N
> messages, if nothing wants to become a console lock owner then it'll
> queue another IRQ work.
Or even simpler
console_unlock()
{
...
if (printed_messages > limit && !console_lock_spinning_disable_and_check()) {
printk_safe_exit_irqrestore(flags);
console_locked = 0;
up_console_sem();
defer_console_output();
return;
}
...
}
Powered by blists - more mailing lists