kexec-tools support for add_efi_memmap
Simon Horman
horms at verge.net.au
Wed Apr 27 02:16:31 EDT 2011
On Tue, Apr 26, 2011 at 02:24:50PM -0400, Ben Romer wrote:
> Hi Simon!
>
> I'm working on supporting linux on a Unisys virtualization platform
> called s-Par, and I've put together a patch for kexec-tools that I'd
> like to submit. s-Par is an EFI-based virtualization system that splits
> up a machine in a way similar to the way Xen does, using a hypervisor,
> and we have a virtual EFI environment that runs for each guest
> partition. This is a "pure" EFI environment, so it doesn't have a
> fully-defined e820 table. To boot linux on our platform, we have to use
> the "add_efi_memmap" parameter to fill out the kernel's memory map with
> the additional entries from EFI.
>
> This causes problems when we try to kexec, because the kexec loader is
> using the /sys/firmware information which is incomplete. It ends up
> causing the kernel and initrd to overlap in memory, which of course
> doesn't work.
>
> I found some discussion of a similar problem on the LKML - a patch from
> Mike Travis, specifically, in a thread called "[Patch 1/1] x86 efi:
> insert add_efi_memmap entries into both e820 maps" from May 12, 2010 -
> the end of which said that the loader needed work rather than the kernel
> being modified.
>
> The patch below checks for the add_efi_memmap option in the kernel
> command line, and switches to using /proc/iomem instead of /sys/memmap
> when the option is found. I think this might fix the general case and I
> know it will allow linux to successfully kexec on our platform.
>
> Would you mind taking a look and letting me know what you think? Thanks
> in advance. :) If this looks okay to you I'll type up and send a formal
> patch email. Sometimes our email system eats patches so if this doesn't
> come through cleanly I'll try again with a different account.
Hi Ben,
this looks good to me. Could you please make it a formal submission
by supplying a Signed-off-by line?
More information about the kexec
mailing list