> Hi!
>
> > The kexec code has gone through a fairly decent review, and all known bugs
> > are resolved. There are still BIOS's that don't work after you have
> > run a kernel but that is an entirely different problem.
>
> Looks good... Few comments follow.
> Perhaps this should be done using driverfs callbacks?
O.k. For the cpu shutdown case I am not certain if this can be modeled
properly but here is a shot at thinking it through.
Drawing the APIC dependencies I get a tree is in parallel and usually
flatter than the normal device tree.
boot_strap_processor
apic
|
+----+--------+---------+--------------+
| | | |
+ + + +
IOAPIC IOAPIC CPU#2 CPU#3
|
+--+--------+---------------+--------- .....
| | |
Legacy PIC PCI device 1 PCI device 2
The only sane way I can think to do is to put the apic tree, above
the pci bus trees. This should preserve the requirement not to
shutdown IOAPICs, before shutting down the pci devices, that send
interrupts through them. The hard challenge is that IOAPICs
can appear as pci devices, so it is at least possible for devices
on one pci bus to depend on the IOAPIC on anther pci bus.
However, if we do not disable the PCI bridges/busses it should not be
an issue. We just need to keep from disabling the IOAPICs, and other
PICs until after we have shutdown all of the other devices.
To properly shutdown an SMP system so it can be reinitialized the PICs
must be placed in legacy mode. Which means all of the IOAPICs must
come down.
Does this sound like something that is reasonable to tackle?
Getting it right is a challenge but I do have a good test case :)
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/