[PATCH 00/15] hvc and powerpc opal console latency reduction

From: Nicholas Piggin
Date: Mon Apr 30 2018 - 10:56:14 EST

I'm seeing scattered reports of hard lockups triggering in the OPAL
console code. I haven't got a full latency trace -- they are difficult
to reproduce and sometimes just show up in dmesg of a bug report when
the system is having other issues. But it does seem like there are
some improvements that can be made to the hvc console and powerpc
opal driver.

I'm not sure how this series should be merged yet, but we can cross
that if/when it comes. Possibly all can go via the tty tree with
acks from powerpc maintainers.

Comments appreciated.


Nicholas Piggin (15):
powerpc/powernv: opal_put_chars partial write fix
powerpc/powernv: Fix OPAL console driver OPAL_BUSY loops
powerpc/powernv: opal-kmsg standardise OPAL_BUSY handling
powerpc/powernv: opal-kmsg use flush fallback from console code
powerpc/powernv: Implement and use opal_flush_console
powerpc/powernv: Remove OPALv1 support from opal console driver
powerpc/powernv: move opal console flushing to udbg
powerpc/powernv: implement opal_put_chars_atomic
tty: hvc: remove unexplained "just in case" spin delay
tty: hvc: use mutex instead of spinlock for hvc_structs lock
tty: hvc: hvc_poll break hv read loop
tty: hvc: hvc_poll may sleep
tty: hvc: hvc_write may sleep
tty: hvc: introduce the hv_ops.flush operation for hvc drivers
powerpc/powernv: provide a console flush operation for opal hvc driver

arch/powerpc/include/asm/opal.h | 3 +
arch/powerpc/platforms/powernv/opal-kmsg.c | 30 +---
arch/powerpc/platforms/powernv/opal.c | 176 +++++++++++++------
drivers/tty/hvc/hvc_console.c | 194 +++++++++++++--------
drivers/tty/hvc/hvc_console.h | 1 +
drivers/tty/hvc/hvc_opal.c | 33 ++--
6 files changed, 276 insertions(+), 161 deletions(-)