Re: [PREEMPT_RT] 8250 IRQ lockup when flooding serial console (was Re: [ANNOUNCE] v5.4.28-rt19)

From: Jiri Kosina
Date: Thu Apr 23 2020 - 05:13:05 EST


On Thu, 23 Apr 2020, Jiri Kosina wrote:

> > I'm pleased to announce the v5.4.28-rt19 patch set.
>
> First, I don't believe this is necessarily a regression coming with this
> particular version, but this is the first kernel where I tried this and it
> crashed.

I just tried with 5.6.4-rt3, and I can make it explode exactly the same
way:

[ 46.523586] 000: irq 4: nobody cared (try booting with the "irqpoll" option)
4187418741874187[ 46.523608] 000: CPU: 0 PID: 1219 Comm: irq/4-ttyS0 Not tainted 5.6.4-rt19+ #10
[ 46.523611] 000: Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-0-ga698c89-rebuilt.suse.com 04/01/2014
[ 46.523613] 000: Call Trace:
[ 46.523630] 000: <IRQ>
[ 46.523638] 000: dump_stack+0x50/0x6b
[ 46.523655] 000: __report_bad_irq+0x2b/0xb0
[ 46.523662] 000: note_interrupt+0x22e/0x280
[ 46.523666] 000: ? io_serial_out+0x11/0x20
[ 46.523671] 000: handle_irq_event_percpu+0x6e/0x90
[ 46.523676] 000: handle_irq_event+0x48/0x90
[ 46.523678] 000: handle_edge_irq+0x95/0x1f0
[ 46.523683] 000: do_IRQ+0x6c/0x120
[ 46.523692] 000: common_interrupt+0xf/0xf
[ 46.523700] 000: </IRQ>
[ 46.523701] 000: RIP: 0010:io_serial_out+0x11/0x20
[ 46.523706] 000: Code: 8b 57 30 d3 e6 01 f2 ec 0f b6 c0 c3 66 66 2e 0f 1f 84 00 00 00 00 00 66 90 0f b6 8f e1 00 00 00 89 d0 8b 57 30 d3 e6 01 f2 ee <c3> 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 0f b6 87 e2 00 00 00
[ 46.523709] 000: RSP: 0018:ffffa4ce80813de8 EFLAGS: 00000202 ORIG_RAX: ffffffffffffffdb
[ 46.523710] 000: RAX: 0000000000000031 RBX: ffffffffb57a0de0 RCX: 0000000000000000
[ 46.523716] 000: RDX: 00000000000003f8 RSI: 0000000000000000 RDI: ffffffffb57a0de0
[ 46.523718] 000: RBP: ffffa30bf9320000 R08: ffffffffb4c0b7a0 R09: 0000000000000001
[ 46.523719] 000: R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000010
[ 46.523720] 000: R13: 0000000000000020 R14: 0000000000000001 R15: ffffa30bfa737498
[ 46.523730] 000: ? io_serial_in+0x20/0x20
[ 46.523732] 000: serial8250_tx_chars+0x121/0x310
[ 46.523735] 000: ? migrate_disable+0x33/0x90
[ 46.523739] 000: serial8250_handle_irq.part.26+0xbb/0xc0
[ 46.523745] 000: serial8250_default_handle_irq+0x45/0x50
[ 46.523747] 000: serial8250_interrupt+0x51/0xa0
[ 46.523750] 000: ? irq_finalize_oneshot.part.46+0xd0/0xd0
[ 46.523752] 000: irq_forced_thread_fn+0x2b/0x70
[ 46.523754] 000: irq_thread+0xd8/0x170
[ 46.523757] 000: ? wake_threads_waitq+0x30/0x30
[ 46.523759] 000: ? irq_thread_dtor+0x90/0x90
[ 46.523760] 000: kthread+0x10e/0x130
[ 46.523765] 000: ? kthread_park+0x80/0x80
[ 46.523766] 000: ret_from_fork+0x35/0x40
[ 46.523772] 000: handlers:
[ 46.523776] 000: [<00000000cdfd4a1d>] irq_default_primary_handler threaded [<0000000078f3e5cd>] serial8250_interrupt
[ 46.523778] 000: Disabling IRQ #4

--
Jiri Kosina
SUSE Labs