Hi Derek,
On 2025-11-13, Derek Barbosa debarbos@redhat.com wrote:
Thanks for this. I have recently have been seeing the same issue with a large-CPU workstation system in which the serial console been locking up entry/exit of S4 Hibernation sleep state at different intervals.
I am still running tests on the V1 of the series to determine reproducibility, but I will try to get this version tested in a timely manner as well.
I did, however, test the proto-patch at [0]. The original issue was reproducible with this patch applied. Avoiding klogd waking in vprintk_emit() and the addition of the check in nbcon.c (new in this series) opposed to aborting callers outright seems more airtight.
I assume the problem you are seeing is with the PREEMPT_RT patches applied (i.e. with the 8250-NBCON included). If that is the case, note that recent versions of the 8250 driver introduce its own irq_work that is also problematic. I am currently reworking the 8250-NBCON series so that it does not introduce irq_work.
Since you probably are not doing anything related to modem control, maybe you could test with the following hack (assuming you are using a v6.14 or later PREEMPT_RT patched kernel).
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 96d32db9f8872..2ad0f91ad467a 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3459,7 +3459,7 @@ void serial8250_console_write(struct uart_8250_port *up, * may be a context that does not permit waking up tasks. */ if (is_atomic) - irq_work_queue(&up->modem_status_work); + ;//irq_work_queue(&up->modem_status_work); else serial8250_modem_status(up); }
[0] https://github.com/Linutronix/linux/commit/ae173249d9028ef159fba040bdab260d8...
John