Re: IRQ behaivour has been changed from v4.14 to v4.15-rc1

From: Andy Shevchenko
Date: Thu Dec 28 2017 - 14:31:19 EST


On Thu, 2017-12-28 at 18:44 +0100, Thomas Gleixner wrote:
> On Thu, 28 Dec 2017, Andy Shevchenko wrote:
> > On Thu, 2017-12-28 at 18:21 +0100, Thomas Gleixner wrote:
> > > > [ 85.167061] spurious APIC interrupt through vector ff on
> > > > CPU#0,
> > > > should never happen.
> > > > [ 85.199886] atomisp-isp2 0000:00:03.0: stream[0] started.
> > > >
> > > > and Ctrl+C does NOT work. Machine just hangs.
> > > >
> > > > It might be related to this:
> > > > https://lkml.org/lkml/2017/12/22/697
> > >
> > > I don't think so.
> > >
> > > Does the patch below cure it?
> >
> > Unfortunately, no.
> >
> > Same behaviour.
> >
> > Tell me if I need to provide some debug before it hangs. For now I
> > have
> > apic=debug (AFAIR it doesn't affect this).
>
> The interesting question is why that spurious APIC interrupt through
> vector
> ff happens. Can you please add the following to the kernel command
> line:
>
> 'trace_events=irq_vectors:* ftrace_dump_on_oops'
>
> and apply the patch below. That should spill out the trace over serial
> (I
> hope you have that ...)

With or without CONFIG_FUNCTION_TRACER=y I have got


[ 28.977918] Dumping ftrace buffer:
[ 28.988115] (ftrace buffer empty)

followed by BUG() output.

...
[ 28.930154] RIP: 0010:smp_spurious_interrupt+0x67/0xb0
...


Anything I missed?

P.S. I didn't apply your previous patch.

> Thanks,
>
> tglx
>
> 8<---------------
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -1978,6 +1978,8 @@ void __init register_lapic_address(unsig
> /* see sw-dev-man vol 3, chapter 7.4.13.5 */
> pr_info("spurious APIC interrupt through vector %02x on
> CPU#%d, "
> "should never happen.\n", vector,
> smp_processor_id());
> + tracing_off();
> + BUG();
>
> trace_spurious_apic_exit(vector);
> exiting_irq();
>

--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy