Re: tty_flip_buffer() from atomic context when low_latency==1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 19 Aug 2011 20:44:26 +0000 (UTC)
Grant Edwards <grant.b.edwards@xxxxxxxxx> wrote:

> On 2011-08-19, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> 
> >> But, many drivers appear to call tty_flip_buffer_push() from an atomic
> >> context. If that is done with tty->low_latency==1 it turns into a call
> >> to flush_to_ldisc(), which then calls disc->ops->receive_buf(), which
> >> must not be called from an atomic context.
> >
> > It's covered under "So don't do that then".
> 
> I don't do that, and wasn't asking if I should.
> 
> My point was that most of the drivers in the linux kernels sources
> _do_ appear to do that, and I don't see how they avoid problems.
> 
> For exaple, 8250.c calls tty_flip_buffer_push() from receive_chars(),
> calld from serial8250_handle_port(), called from
> serial8250_interrupt().
> 
> How are problems avoided when tty->low_latency is set?
> 
> Is tty->low_latency never allowed to be set for the 8250 driver?

Several drivers certainly allow someone with superuser privileges to
misconfigure them. I've never worried about chasing all those down.

It might actually be worth supporting a tty->low_latency mode which uses
a tty layer private workqueue that is set to real time priority rather
than the system work queue.

Alan

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux