Oh man, you rock. I spent about ten hours last weekend
trying to teach 2-kernel-monte to do this. But the damn
XT clock refused to deliver interrupts to the secondary
kernel when the primary had local APCI enabled :(
On uniprocessor, you can type `sudo monte /boot/bzImage'
and get to `decompressing linux' in two seconds flat. (Having
journalling filesystems rather helps with this trick). It's
lovely.
> The biggest issue I have had is
> with the kernel not properly shutting down devices.
Monte just disables all busmastering on the PCI devices...
> In the short term shutting down devices is trivially handled by
> umounting filesystems, downing ethernet devices, and calling the
> reboot notifier chain. Long term I need to call the module_exit
> routines but they need a little sorting out before I can use them
> during reboot. In particular calling any module_exit routing that clears
> pm_power_off is a no-no.
module_exit() routines for statically-linked drivers often
don't exist - they're in .text.exit. I guess you can just
move .text.exit out of the /DISCARD/ section in vmlinux.lds.
Also, take a look at user-mode-linux's do_exitcalls()
implementation - there's no clear reason why that shouldn't
be mainstreamed.
It would be convenient to be able to directly boot a bzImage,
but I guess elf is workable.
Great work, and thanks! I look forward to 2-second SMP
reboots.
-
-
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/