[PATCH] kexec: force x86_64 arches to boot kdump kernels on boot cpu
nhorman at tuxdriver.com
Tue Nov 27 09:28:26 EST 2007
On Tue, Nov 27, 2007 at 02:45:56PM +0100, Andi Kleen wrote:
> his is any less reliable that what we have currently.
> > It doesn't make things more reliable, and it adds code to a code path
> > that already has to much code to be solid reliable (thus your
> > problem).
> > Putting the system back in PIC legacy mode on the kexec on panic path
> > was supposed to be a short term hack until we could remove the need
> > by always deliver interrupts in apic mode.
> > If you can't root cause your problem and figure out how the apics
> > are misconfigured for legacy mode
> Probably legacy mode always routes to CPU #0. Makes sense and is
> not really a misconfiguration of legacy mode.
> But if CPU #0 has interrupts disabled no interrupts get delivered.
> So choices are:
> - Move to CPU #0
> - Do not use legacy mode during shutdown.
> - Or do not rely on interrupts after enabling legacy mode
> - Or do not disable interrupts on the other CPUs when they're
> First and last option are probably unreliable for the kdump case.
> Second or third sound best.
Not sure if this is applicable, but I assume not relying on interrupts in legacy
mode would be equivalent to specifying irqpoll on the kdump kernel command line?
If so, there seems to be a problem with that solution, as doing so still results
in the same hang on the system in question.
As for solution 2, that brings me to my previous question. Is that really as
simple as just not moving the apic to legacy mode? It would seem some
additional programming would be in order to route the interrupt in question to
the proper cpu.
> I suspect the real fix would be to enable IOAPIC mode really
> early and never use the timers in legacy mode. Then the kdump
> kernel wouldn't care about the legacy mode pointing to the wrong CPU.
> IIrc Eric even had a patch for that a long time ago, but it broke some
> things so it wasn't included. But perhaps it should be revisited.
More information about the kexec