Delegating printk work to UART interrupt

Arun KS getarunks at
Mon Jul 20 00:04:16 EDT 2015

Hello Alexander,

On Sat, Jul 18, 2015 at 11:23 AM, Alexander <alexhoppus111 at> wrote:

> Hi!
> When i checked how kernel printing works, i mentioned that it takes
> messages
> from log_buffer in console_unlock and gives it to call_console_drivers ->
> ...
> -> some uart bsp function. Basically, as i see this BSP realization tries
> to flush all message chars in busyloop ... so it waits until FIFO_NOT_FULL
> bit will
> be dropped by UART and it will be able to push the next byte.
> Basically, as i see userspace printing do something different. It puts
> and exits, next, when FIFO will be freed - interrupt will be generated, and
> other characters will be put into UART FIFO.
> Can we do something similar for kernel printing? i.e. do not busyloop
> sending char
> after char, but put N_FIFO chars and flush  other in interrupt. When panic
> will occur
> we can do busyloop printing again. Is it reliable? Suppose we have several
> cores.
> Thank you.
What about trying this patch,

Its not changing console printing through UART to interrupt mode. But
minimizes the time interrupts being disabled on printk().


> --
> Alexander <alexhoppus111 at>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Kernelnewbies mailing list