lkml.org 
[lkml]   [2018]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: printk() from NMI backtrace can delay a lot
On (07/04/18 01:31), Sergey Senozhatsky wrote:
> it might be the case that we can do
>
> serial_driver_handle_irq()
> {
> spin_loc(uart_port->lock);
>
> .. TX / RX
>
> spin_unlock(uart_port->lock);
>
> tty_flip_buffer_push(uart_port->tty_port);
> }
>
> This should break this chain
>
> uart_port->lock -> pool->lock // -> sheduler/etc.
>
>
> Can we do it? What am I missing?

Hmm, and we actually have some serial drivers that do tty_filp_buffer_push()
outside of uart_port->lock. For instance, drivers/tty/serial/efm32-uart.c
irqreturn_t efm32_uart_rxirq().

-ss

\
 
 \ /
  Last update: 2018-07-03 18:40    [W:0.071 / U:0.224 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site