linux_dsm_epyc7002/drivers/tty/serial
Darwin Dingel 6d7f677a2a serial: 8250: Rate limit serial port rx interrupts during input overruns
When a serial port gets faulty or gets flooded with inputs, its interrupt
handler starts to work double time to get the characters to the workqueue
for the tty layer to handle them. When this busy time on the serial/tty
subsystem happens during boot, where it is also busy on the userspace
trying to initialise, some processes can continuously get preempted
and will be on hold until the interrupts subside.

The fix is to backoff on processing received characters for a specified
amount of time when an input overrun is seen (received a new character
before the previous one is processed). This only stops receive and will
continue to transmit characters to serial port. After the backoff period
is done, it receive will be re-enabled. This is optional and will only
be enabled by setting 'overrun-throttle-ms' in the dts.

Signed-off-by: Darwin Dingel <darwin.dingel@alliedtelesis.co.nz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-12-17 16:02:57 +01:00
..
8250 serial: 8250: Rate limit serial port rx interrupts during input overruns 2018-12-17 16:02:57 +01:00
cpm_uart mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
jsm tty: serial: jsm: remove redundant pointer ch 2018-07-13 15:36:32 +02:00
21285.c
altera_jtaguart.c
altera_uart.c
amba-pl010.c
amba-pl011.c serial: set suppress_bind_attrs flag only if builtin 2018-11-09 09:07:17 -08:00
amba-pl011.h
apbuart.c
apbuart.h
ar933x_uart.c
arc_uart.c
atmel_serial.c tty/serial: atmel: add ISO7816 support 2018-10-02 13:38:55 -07:00
atmel_serial.h tty/serial: atmel: add ISO7816 support 2018-10-02 13:38:55 -07:00
bcm63xx_uart.c
clps711x.c
digicolor-usart.c
dz.c
dz.h
earlycon-arm-semihost.c
earlycon.c earlycon: Remove hardcoded port->uartclk initialization in of_setup_earlycon 2018-05-14 13:41:05 +02:00
efm32-uart.c
fsl_lpuart.c serial: fsl_lpuart: clear parity enable bit when disable parity 2018-11-09 08:48:57 -08:00
icom.c
icom.h
ifx6x60.c
ifx6x60.h
imx.c serial: imx: fix error handling in console_setup 2018-11-27 09:56:20 +01:00
ioc3_serial.c
ioc4_serial.c
ip22zilog.c
ip22zilog.h
Kconfig tty/serial: atmel: Change the driver to work under at91-usart MFD 2018-09-10 16:12:43 +01:00
kgdb_nmi.c
kgdboc.c kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var() 2018-12-06 15:59:07 +01:00
lantiq.c serial: lantiq: Change init_lqasc to static declaration 2018-11-09 08:43:27 -08:00
lpc32xx_hs.c
Makefile
max310x.c serial: max310x: Check the clock readiness 2018-06-28 21:07:54 +09:00
max3100.c
mcf.c
men_z135_uart.c
meson_uart.c
mpc52xx_uart.c
mps2-uart.c
mpsc.c
msm_serial.c tty: serial: msm_serial: Add __maybe_unused to suspend/resume callbacks 2018-05-14 13:41:05 +02:00
mux.c
mvebu-uart.c serial: mvebu-uart: initialize over sampling stack register 2018-11-27 09:20:17 +01:00
mxs-auart.c serial: mxs-auart: Fix potential infinite loop 2018-09-18 16:07:24 +02:00
netx-serial.c
omap-serial.c
owl-uart.c
pch_uart.c pch_uart: remove set but not used variable 'tx_empty' 2018-11-09 09:07:17 -08:00
pic32_uart.c serial: set suppress_bind_attrs flag only if builtin 2018-11-09 09:07:17 -08:00
pic32_uart.h
pmac_zilog.c tty: serial: remove set but not used variable 'error' 2018-09-20 13:33:15 +02:00
pmac_zilog.h
pnx8xxx_uart.c
pxa.c serial: pxa: Fix an error handling path in 'serial_pxa_probe()' 2018-06-28 21:07:54 +09:00
qcom_geni_serial.c tty: serial: qcom_geni_serial: Remove interrupt storm 2018-12-17 15:06:46 +01:00
rp2.c treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
sa1100.c
samsung.c serial: samsung: Enable baud clock for UART reset procedure in resume 2018-09-18 16:07:24 +02:00
samsung.h
sb1250-duart.c
sc16is7xx.c sc16is7xx: Fix for "Unexpected interrupt: 8" 2018-09-18 16:07:25 +02:00
sccnxp.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
serial_core.c TTY/Serial patches for 4.20-rc1 2018-10-29 10:42:20 -07:00
serial_ks8695.c
serial_mctrl_gpio.c gpiolib: Pass array info to get/set array functions 2018-09-13 11:16:54 +02:00
serial_mctrl_gpio.h
serial_txx9.c
serial-tegra.c serial: tegra: fix some spelling mistakes 2018-11-09 08:58:18 -08:00
sh-sci.c serial: sh-sci: Resume PIO in sci_rx_interrupt() on DMA failure 2018-12-17 15:04:11 +01:00
sh-sci.h serial: sh-sci: Support for HSCIF RX sampling point adjustment 2018-04-23 10:08:18 +02:00
sirfsoc_uart.c
sirfsoc_uart.h
sn_console.c TTY: sn_console: Replace spin_is_locked() with spin_trylock() 2018-10-04 11:06:35 -07:00
sprd_serial.c serial: sprd: Fix the indentation issue 2018-09-18 16:07:24 +02:00
st-asc.c tty: serial: simplify getting .drvdata 2018-04-22 17:29:43 +02:00
stm32-usart.c
stm32-usart.h
suncore.c drivers/tty: add missing of_node_put() 2018-12-02 20:55:23 -08:00
sunhv.c
sunsab.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
sunsab.h
sunsu.c Revert "serial/sunsu: add missing of_node_put()" 2018-12-05 10:53:42 +01:00
sunzilog.c
sunzilog.h
timbuart.c
timbuart.h
uartlite.c serial-uartlite: fix null pointer dereference on pointer port 2018-11-27 09:08:15 +01:00
ucc_uart.c
vr41xx_siu.c
vt8500_serial.c
xilinx_uartps.c Revert "tty: xilinx_uartps: Correct return value in probe" 2018-12-06 12:47:22 +01:00
zs.c
zs.h