Re: [x86/ioapic] b643128b91: Kernel panic - not syncing: timer doesn't work through Interrupt-remapped IO-APIC

From: Woodhouse, David
Date: Tue Nov 03 2020 - 11:10:50 EST


On Tue, 2020-11-03 at 16:22 +0100, Thomas Gleixner wrote:
> Hi!
>
> On Tue, Nov 03 2020 at 22:31, lkp wrote:
> > FYI, we noticed the following commit (built with gcc-9):
> >
> > commit: b643128b917ca8f1c8b1e14af64ebdc81147b2d1 ("x86/ioapic: Use
> > irq_find_matching_fwspec() to find remapping irqdomain")
> >
> > [ 3.148819] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
> > [ 3.154825] DMAR: DRHD: handling fault status reg 2
> > [ 3.159701] DMAR: [INTR-REMAP] Request device [f0:1f.7] fault
> > index 0 [fault reason 37] Blocked a compatibility format interrupt
> > request
> > [ 3.173870] Kernel panic - not syncing: timer doesn't work
> > through Interrupt-remapped IO-APIC
> > [ 3.182381] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.0-
> > rc1-00029-gb643128b917c #1
> > [ 3.190370] Hardware name: Supermicro SYS-5018D-FN4T/X10SDV-8C-
> > TLN4F, BIOS 1.1 03/02/2016
> > [ 3.198534] Call Trace:
> > [ 3.200983] dump_stack+0x57/0x6a
> > [ 3.204298] panic+0x102/0x2d2
> > [ 3.207349] panic_if_irq_remap.cold+0x5/0x5
> > [ 3.211613] check_timer+0x1f6/0x694
> > [ 3.215184] ? printk+0x58/0x6f
> > [ 3.218320] setup_IO_APIC+0x17b/0x1c3
> > [ 3.222067] x86_late_time_init+0x20/0x30
> > [ 3.226077] start_kernel+0x40c/0x4c7
> > [ 3.229734] secondary_startup_64_no_verify+0xb8/0xbb
>
> It's not reproducing here. Can you please redo the test with
> apic=verbose on the kernel command line and provide the full dmesg
> output?

Ah, it already had apic=debug; sorry. I was looking for the IRTE setup
messages, which clearly aren't there which is why it was generating
compatibility format interrupts.

It's probably this. Will try harder to reproduce to confirm...

--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2335,7 +2335,7 @@ static int mp_irqdomain_create(int ioapic)
if (cfg->dev) {
fn = of_node_to_fwnode(cfg->dev);
} else {
- fn = irq_domain_alloc_named_id_fwnode("IO-APIC", ioapic);
+ fn = irq_domain_alloc_named_id_fwnode("IO-APIC", mpc_ioapic_id(ioapic));
if (!fn)
return -ENOMEM;
}



Amazon Development Centre (London) Ltd. Registered in England and Wales with registration number 04543232 with its registered office at 1 Principal Place, Worship Street, London EC2A 2FA, United Kingdom.