[PATCH v1 0/3] reduce tty latency

From: Oleksij Rempel
Date: Thu Jan 10 2019 - 05:12:54 EST


This patch set is reducing latency on tty path.
For testing I used hackbench running on all cores of 4 core system and
high prioritized application sending and receiving packets over tty interface
with loop-back adapter.

Results without this patches:
latency histogram:
0 ... < 250 usec : 1933104 transmissions
250 ... < 500 usec : 21339 transmissions
500 ... < 750 usec : 8952 transmissions
750 ... < 1000 usec : 6226 transmissions
1000 ... < 1500 usec : 7688 transmissions
1500 ... < 2000 usec : 5236 transmissions
2000 ... < 5000 usec : 11724 transmissions
5000 ... < 10000 usec : 3588 transmissions
10000 ... < 50000 usec : 2123 transmissions
50000 ... < 1000000 usec : 20 transmissions
>= 1000000 usec : 0 transmissions

Test results after this patches:
min latency: 0 sec : 75 usec
max latency: 0 sec : 125 usec
average latency: 81 usec
latency measure cycles overall: 79000000
latency histogram:
0 ... < 250 usec : 79000000 transmissions
250 ... < 500 usec : 0 transmissions
500 ... < 750 usec : 0 transmissions
750 ... < 1000 usec : 0 transmissions
1000 ... < 1500 usec : 0 transmissions
1500 ... < 2000 usec : 0 transmissions
2000 ... < 5000 usec : 0 transmissions
5000 ... < 10000 usec : 0 transmissions
10000 ... < 50000 usec : 0 transmissions
50000 ... < 1000000 usec : 0 transmissions
>= 1000000 usec : 0 transmissions
average no. of read calls to assemble the packet: 1

Usage of real-time patches makes no difference for test case.

Oleksij Rempel (1):
drivers/tty: increase priority for tty_buffer_worker

Steven Walter (2):
drivers/tty: refactor functions for flushing/queuing work
drivers/tty: convert tty_port to use kthread_worker

drivers/tty/tty_buffer.c | 39 +++++++++++++++++++++++++++++++--------
drivers/tty/tty_io.c | 1 +
include/linux/tty.h | 8 +++++---
3 files changed, 37 insertions(+), 11 deletions(-)

--
2.19.1