Messages in this thread | | | Subject | Re: common_interrupt: No irq handler for vector | From | Shuah Khan <> | Date | Mon, 14 Dec 2020 09:11:57 -0700 |
| |
On 12/12/20 12:33 PM, Thomas Gleixner wrote: > On Fri, Dec 11 2020 at 13:41, Shuah Khan wrote: > >> I am debugging __common_interrupt: 1.55 No irq handler for vector >> messages and noticed comments and code don't agree: > > I bet that's on an AMD system with broken AGESA BIOS.... Good luck > debugging it :) BIOS updates are on the way so I'm told. >
Interesting. The behavior I am seeing doesn't seem to be consistent with BIOS problem. I don't see these messages on 5.10-rc7. I started seeing them on stable releases. It started right around 5.9.9 and not present on 5.9.7.
I am bisecting to isolate. Same issue on all stables 5.4, 4.19 and so on. If it is BIOS problem I would expect to see it on 5.10-rc7 and wouldn't have expected to start seeing it 5.9.9.
+ add Greg since I am talking about stable releases.
>> arch/x86/kernel/apic/msi.c: msi_set_affinity() says: >> >> >> * If the vector is in use then the installed device handler will >> * denote it as spurious which is no harm as this is a rare event >> * and interrupt handlers have to cope with spurious interrupts >> * anyway. If the vector is unused, then it is marked so it won't >> * trigger the 'No irq handler for vector' warning in >> * common_interrupt(). >> >> common_interrupt() prints message if vector is unused: VECTOR_UNUSED >> >> ack_APIC_irq(); >> >> if (desc == VECTOR_UNUSED) { >> pr_emerg_ratelimited("%s: %d.%u No irq handler for vector\n", >> __func__, smp_processor_id(), vector); >> } >> >> Something wrong here? > > No. It's perfectly correct in the MSI code. See further down. > > if (IS_ERR_OR_NULL(this_cpu_read(vector_irq[cfg->vector]))) > this_cpu_write(vector_irq[cfg->vector], VECTOR_RETRIGGERED); >
I am asking about inconsistent comments and the actual message as the comment implies if vector is VECTOR_UNUSED state, this message won't be triggered in common_interrupt. Based on that my read is the comment might be wrong if the code is correct as you are saying.
thanks, -- Shuah
| |