Re: [RFC] x86 ELF bootable kernels/Linux booting Linux/LinuxBIOS

Andrew Morton
2002-01-30T21:26:38Z

"Eric W. Biederman" wrote:
>
> A kernel fix to do proper SMP shutdown so that you can kexec on a SMP kernel

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.

-