[patch 0/7 v2] kexec kernel efi runtime support
Dave Young
dyoung at redhat.com
Fri Nov 8 22:57:39 EST 2013
Hi, Matt
On 11/08/13 at 02:31pm, Matt Fleming wrote:
> On Tue, 05 Nov, at 04:20:07PM, dyoung at redhat.com wrote:
> > Hi,
> >
> > Here is the V2 for supporting kexec kernel efi runtime.
> > Per pervious discussion I pass the 1st kernel efi runtime mapping
> > via setup_data to 2nd kernel. Besides of the runtime mapping
> > info I also pass the fw_vendor, runtime, config table, smbios
> > physical address in setup_data. EFI spec mentioned fw_vendor,
> > runtime, config table addresses will be converted to virt address
> > after entering virtual mode, but we will use it as physical address
> > in efi_init. For smbios EFI spec did not mention about the address
> > updating, but during my test on a HP workstation, the bios will
> > convert it to Virt addr, thus pass it in setup_data as well.
>
> I see this in the dmesg,
>
> [ 0.000000] efi: skipping setup_data on EFI 32BIT!
>
> despite the fact that this is on an x86-64 box. Turns out it's because
> CONFIG_DEBUG_BOOT_PARAMS isn't set in my config. You may want to turn
> that on automatically. After doing that things work on my ASUS box (good
> work!) but the SATA controller craps out on my Tunnelmountain machine,
> but that's probably unrelated and I'll debug that separately.
Hmm, if CONFIG_DEBUG_BOOT_PARAMS is not set, then kexec-tools should
fail getting efi_info, so I will fix kexec-tools patch about this.
Also CONFIG_EFI_RUNTIME_MAP should select CONFIG_DEBUG_BOOT_PARAMS.
In future will try to move the boot params data out of debugfs.
>
> I see a bunch of section mismatch warnings,
>
> WARNING: arch/x86/platform/efi/built-in.o(.text+0xd1e): Section mismatch in reference from the function efi_map_regions_fixed() to the function .init.text:efi_map_region_fixed()
> The function efi_map_regions_fixed() references
> the function __init efi_map_region_fixed().
> This is often because efi_map_regions_fixed lacks a __init
> annotation or the annotation of efi_map_region_fixed is wrong.
>
> WARNING: arch/x86/platform/efi/built-in.o(.text+0xd2a): Section mismatch in reference from the function efi_map_regions_fixed() to the variable .init.data:efi_phys
> The function efi_map_regions_fixed() references
> the variable __initdata efi_phys.
> This is often because efi_map_regions_fixed lacks a __initdata
> annotation or the annotation of efi_phys is wrong.
>
> WARNING: arch/x86/platform/built-in.o(.text+0xd1e): Section mismatch in reference from the function efi_map_regions_fixed() to the function .init.text:efi_map_region_fixed()
> The function efi_map_regions_fixed() references
> the function __init efi_map_region_fixed().
> This is often because efi_map_regions_fixed lacks a __init
> annotation or the annotation of efi_map_region_fixed is wrong.
>
> WARNING: arch/x86/platform/built-in.o(.text+0xd2a): Section mismatch in reference from the function efi_map_regions_fixed() to the variable .init.data:efi_phys
> The function efi_map_regions_fixed() references
> the variable __initdata efi_phys.
> This is often because efi_map_regions_fixed lacks a __initdata
> annotation or the annotation of efi_phys is wrong.
>
> WARNING: arch/x86/built-in.o(.text+0x7c357): Section mismatch in reference from the function parse_efi_setup() to the function .init.text:early_memremap()
> The function parse_efi_setup() references
> the function __init early_memremap().
> This is often because parse_efi_setup lacks a __init
> annotation or the annotation of early_memremap is wrong.
>
> WARNING: arch/x86/built-in.o(.text+0x7c390): Section mismatch in reference from the function parse_efi_setup() to the function .init.text:early_iounmap()
> The function parse_efi_setup() references
> the function __init early_iounmap().
> This is often because parse_efi_setup lacks a __init
> annotation or the annotation of early_iounmap is wrong.
>
> WARNING: arch/x86/built-in.o(.text+0x7c5ce): Section mismatch in reference from the function efi_map_regions_fixed() to the function .init.text:efi_map_region_fixed()
> The function efi_map_regions_fixed() references
> the function __init efi_map_region_fixed().
> This is often because efi_map_regions_fixed lacks a __init
> annotation or the annotation of efi_map_region_fixed is wrong.
>
> WARNING: arch/x86/built-in.o(.text+0x7c5da): Section mismatch in reference from the function efi_map_regions_fixed() to the variable .init.data:vdso32_sysenter_end
> The function efi_map_regions_fixed() references
> the variable __initdata vdso32_sysenter_end.
> This is often because efi_map_regions_fixed lacks a __initdata
> annotation or the annotation of vdso32_sysenter_end is wrong.
Will fix, thanks for testing.
>
> Also, many of your patch descriptions are missing subsystem tags. Please
> fix this in your next submission.
Do you means to add "efi:" in subject?
Thanks
Dave
More information about the kexec
mailing list