• L
    tty: stop using "delayed_work" in the tty layer · f23eb2b2
    Linus Torvalds 提交于
    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: NJef Driesen <jefdriesen@telenet.be>
    Acked-by: NGreg KH <gregkh@suse.de>
    Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    f23eb2b2
tty_buffer.c 14.1 KB