]> Git Repo - linux.git/commit
tty: stop using "delayed_work" in the tty layer
authorLinus Torvalds <[email protected]>
Tue, 22 Mar 2011 23:17:32 +0000 (16:17 -0700)
committerLinus Torvalds <[email protected]>
Tue, 22 Mar 2011 23:17:32 +0000 (16:17 -0700)
commitf23eb2b2b28547fc70df82dd5049eb39bec5ba12
tree144dce462b34d8a232a06f766786ebfb0235fa87
parentf741a79e982cf56d7584435bad663553ffe6715f
tty: stop using "delayed_work" in the tty layer

Using delayed-work for tty flip buffers ends up causing us to wait for
the next tick to complete some actions.  That's usually not all that
noticeable, but for certain latency-critical workloads it ends up being
totally unacceptable.

As an extreme case of this, passing a token back-and-forth over a pty
will take two ticks per iteration, so even just a thousand iterations
will take 8 seconds assuming a common 250Hz configuration.

Avoiding the whole delayed work issue brings that ping-pong test-case
down to 0.009s on my machine.

In more practical terms, this latency has been a performance problem for
things like dive computer simulators (simulating the serial interface
using the ptys) and for other environments (Alan mentions a CP/M emulator).

Reported-by: Jef Driesen <[email protected]>
Acked-by: Greg KH <[email protected]>
Acked-by: Alan Cox <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/tty/tty_buffer.c
drivers/tty/tty_ldisc.c
include/linux/kbd_kern.h
include/linux/tty.h
This page took 0.052939 seconds and 4 git commands to generate.