kexec or similar for FreeBSD
Russell Cattelan
cattelan at thebarn.com
Fri Jun 17 03:35:55 UTC 2011
On 6/16/11 3:06 PM, Gleb Kurtsou wrote:
> On (16/06/2011 13:32), Russell Cattelan wrote:
>> I have been contacted about possibly implementing a fast reboot
>> mechanism for FreeBSD similar to kexec on Linux.
>>
>> I have just started looking into how this accomplished so I figured
>> a note to freebsd hackers would also be a good place to ask
>> for comments.
>>
>> Has anybody looked at doing something like kexec?
> I was working on similar project some time ago. First of all you have to
> leave hardware in known good state for a new kernel. Reseting devices
> can be generally accomplished by unloading corresponding kernel modules
> (even if they are compiled in kernel). The biggest problem for me was
> timers and programmable interrupt controller. I didn't make it work
> properly, but my goals where much wider than replacing with another
> FreeBSD kernel. Aim was to restore initial BIOS state as much as
> possible.
What were your goals beyond booting a new kernel? I think getting back
to a known BIOS state is kinda required to get a kernel through the boot
process. From what I can tell the main goal of kexec is to avoid the process
of re-initializing the hardware via BIOS.
>> Is it the right thing to do for FreeBSD. I'm concerned that the way
>> FreeBSD handles early kernel modules (loaded via the boot loader)
>> vs linux which does everything via initrd is going to be a problem.
> I find loader code easy work with. You could write dummy filesystem
> implementation for libstand. So that customized loader will load both
> kernel and modules yet while running FreeBSD. Your "reboot" procedure
> wouldn't even use any BIOS io interrupts. Linux boot is a real mess
> imho.
>
So it is possible to get back to the loader once the kernel is booted?
So the running kernel could load the new kernel / modules and then jump
back to the loader to start the boot process.
>> Thanks for any help on this.
>>
>> -Russell Cattelan
More information about the freebsd-hackers
mailing list