Re: [PATCH] x86, kdump: No need to disable ioapic in crash path

From: Don Zickus
Date: Tue Feb 07 2012 - 17:09:47 EST


On Thu, Feb 02, 2012 at 03:24:46PM -0800, Eric W. Biederman wrote:
> > Eric, brought up a point that because the boot code was restructured we may
> > not need to disable the io apic any more in the crash path. The original
> > concern that led to the development of disable_IO_APIC, was that the TSC
> > calibration on boot up relied on the PIT timer for reference. Access
> > to the PIT required 8259 interrupts to be working. This wouldn't work
> > if the ioapic needed to be configured. So on panic path, the ioapic was
> > reconfigured to use virtual wire mode to allow the 8259 to passthrough.
>
> A small clarification originally it was the jiffies calibration that
> would fail if we could cause the PIT to generate interrupts through the
> 8259. The boot would then hang at calibrating jiffies.

Ok. Thanks!

>
> > Those concerns don't hold true now, thanks to the fast TSC calibration code
> > not needing the PIT. As a result, we can remove this call and simplify the
> > locking needed in the panic path.
> >
> > I tested kdump on an Ivy Bridge platform, a Pentium4 and an old athlon that
> > did not have an ioapic. All three were successful.
> >
> > Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
> > Cc: Vivek Goyal <vgoyal@xxxxxxxxxx>
> > Signed-off-by: Don Zickus <dzickus@xxxxxxxxxx>
> >
> > ---
> > I will probably need some help with my explaination as to why this line is not
> > needed. Any input is appreciated!
>
> Can you test and verify that we also do not need the lapic_shutdown()
> call and the disable_local_APIC call on the other processors. The same
> reasoning that supports us not needing to disable the IO_APIC also
> supports us not needing to disable local apic.

I did that and it seemed to work on my Ivy Bridge and core2 quad systems.

>
> Removing disable_IO_APIC in and of itself and then booting isn't quite
> sufficient as a practical test to prove this code always works.
> Sometimes the IOAPIC was not hooked up to interesting interrupt sources
> like the 8259.

So what systems should I look for to test?

Cheers,
Don
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/