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

Don Zickus dzickus at redhat.com
Tue Feb 7 16:57:41 EST 2012


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 at xmission.com>
> > Cc: Vivek Goyal <vgoyal at redhat.com>
> > Signed-off-by: Don Zickus <dzickus at redhat.com>
> >
> > ---
> > 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



More information about the kexec mailing list