mbox series

[00/26] tty: drop low-latency workarounds

Message ID 20210421095509.3024-1-johan@kernel.org
Headers show
Series tty: drop low-latency workarounds | expand

Message

Johan Hovold April 21, 2021, 9:54 a.m. UTC
The infamous low_latency behaviour of tty_flip_buffer_push(), which
meant that data could be pushed to the line discipline immediately
instead of being deferred to a work queue, was finally removed in 2014.

Since then there's no need for drivers to keep hacks to temporarily drop
the port lock during receive processing but this pattern has been
reproduced in later added drivers nonetheless.

Note that several of these workarounds were added by a series posted in
2013, which ended up being merged despite having completely nonsensical
commit messages. As it turned out, it was just the RT patch set which
effectively enabled the low_latency flag for serial drivers that did not
handle it.

There's of course nothing wrong releasing the port lock before calling
tty_flip_buffer_push(), and some drivers still do after this series, but
let's get rid of the completely unnecessary unlock-and-reacquire
pattern.

Johan


Johan Hovold (26):
  tty: mxser: drop low-latency workaround
  serial: altera_jtaguart: drop low-latency workaround
  serial: altera_uart: drop low-latency workaround
  serial: amba-pl010: drop low-latency workaround
  serial: amba-pl011: drop low-latency workaround
  serial: apbuart: drop low-latency workaround
  serial: ar933x: drop low-latency workaround
  serial: arc_uart: drop low-latency workaround
  serial: atmel_serial: drop low-latency workaround
  serial: bcm63xx: drop low-latency workaround
  serial: icom: drop low-latency workaround
  serial: lpc32xx_hs: drop low-latency workaround
  serial: mcf: drop low-latency workaround
  serial: meson: drop low-latency workaround
  serial: mpc52xx_uart: drop low-latency workaround
  serial: msm_serial: drop low-latency workaround
  serial: owl: drop low-latency workaround
  serial: rda: drop low-latency workaround
  serial: rp2: drop low-latency workaround
  serial: sa1100: drop low-latency workaround
  serial: txx9: drop low-latency workaround
  serial: sifive: drop low-latency workaround
  serial: sunsu: drop low-latency workaround
  serial: timbuart: drop low-latency workaround
  serial: vt8500: drop low-latency workaround
  serial: xilinx_uartps: drop low-latency workaround

 drivers/tty/mxser.c                  |  7 -------
 drivers/tty/serial/altera_jtaguart.c |  2 --
 drivers/tty/serial/altera_uart.c     |  2 --
 drivers/tty/serial/amba-pl010.c      |  2 --
 drivers/tty/serial/amba-pl011.c      |  2 --
 drivers/tty/serial/apbuart.c         |  2 --
 drivers/tty/serial/ar933x_uart.c     |  2 --
 drivers/tty/serial/arc_uart.c        |  2 --
 drivers/tty/serial/atmel_serial.c    | 18 ------------------
 drivers/tty/serial/bcm63xx_uart.c    |  2 --
 drivers/tty/serial/icom.c            |  2 --
 drivers/tty/serial/lpc32xx_hs.c      |  2 --
 drivers/tty/serial/mcf.c             |  2 --
 drivers/tty/serial/meson_uart.c      |  2 --
 drivers/tty/serial/mpc52xx_uart.c    |  2 --
 drivers/tty/serial/msm_serial.c      |  4 ----
 drivers/tty/serial/owl-uart.c        |  2 --
 drivers/tty/serial/rda-uart.c        |  2 --
 drivers/tty/serial/rp2.c             |  2 --
 drivers/tty/serial/sa1100.c          |  2 --
 drivers/tty/serial/serial_txx9.c     |  4 ++--
 drivers/tty/serial/sifive.c          |  2 --
 drivers/tty/serial/sunsu.c           |  4 ----
 drivers/tty/serial/timbuart.c        |  2 --
 drivers/tty/serial/vt8500_serial.c   |  2 --
 drivers/tty/serial/xilinx_uartps.c   |  3 +--
 26 files changed, 3 insertions(+), 77 deletions(-)

Comments

Greg KH April 22, 2021, 10:09 a.m. UTC | #1
On Wed, Apr 21, 2021 at 11:54:43AM +0200, Johan Hovold wrote:
> The infamous low_latency behaviour of tty_flip_buffer_push(), which
> meant that data could be pushed to the line discipline immediately
> instead of being deferred to a work queue, was finally removed in 2014.
> 
> Since then there's no need for drivers to keep hacks to temporarily drop
> the port lock during receive processing but this pattern has been
> reproduced in later added drivers nonetheless.
> 
> Note that several of these workarounds were added by a series posted in
> 2013, which ended up being merged despite having completely nonsensical
> commit messages. As it turned out, it was just the RT patch set which
> effectively enabled the low_latency flag for serial drivers that did not
> handle it.
> 
> There's of course nothing wrong releasing the port lock before calling
> tty_flip_buffer_push(), and some drivers still do after this series, but
> let's get rid of the completely unnecessary unlock-and-reacquire
> pattern.

Many thanks for cleaning up this old crud, all now applied.

greg k-h