Delegating printk work to UART interrupt
getarunks at gmail.com
Mon Jul 20 00:04:16 EDT 2015
On Sat, Jul 18, 2015 at 11:23 AM, Alexander <alexhoppus111 at gmail.com> wrote:
> When i checked how kernel printing works, i mentioned that it takes
> 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
> 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 gmail.com>
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Kernelnewbies