On (21/05/06 23:07), Sergey Senozhatsky wrote:
Can we count the number of lines that we print from the `current` contextOr even simpler
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.
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;
}
...
}
.