Re: [PATCH 15/16] bootparam: Pass acpi_rsdp pointer in bootparam

Borislav Petkov
2013-09-12T12:53:39Z

On Thu, Sep 12, 2013 at 03:34:15PM +0800, Dave Young wrote:
> I'm playing with skipping SetVirtualAddressMap in kexec kernel, for
> same kernel the test result is ok for me both for kexec and kdump.
> Takao Indoh sent a patch with this approatch, but his V2 switched to
> use physical mapping. During my test, additional data of config table

Physical mapping won't work because of some very brilliant Apple UEFI
implementations, as I came to realize. My previous version did that :)

> elems need to be saved besides of fw_vendor, runtime and tables or
> dereference taglep->guid will panic.
>
> Also kexec userspace need to fill efi_info in bootparams and pass the
> previous saved efi data to 2nd kernel.

Hmm, yes, we need to tell the kexec kernel the EFI regions.

> I'm worrying just skiping enter virt mode have risk though it's an
> easy solution. Your 1:1 mapping approatch looks better. I look forward
> to test your new patchset.

Yeah, we had a discussion at the SUSE Labs conf about whether we could
really skip SetVirtualAddressMap in the first kernel and do it in the
kexec kernel but the first kernel might want to call runtime services
for whatever reason and for that we need the runtime services. So we
opted for the stable VA mappings.

> Are you also working on kexec userspace part? Already have a patch?

Why userspace part - I'm thinking the kexec'ed kernel would simply add
the mappings made by SetVirtualAddressMap without calling it. And it
will know which mappings go to which virtual addresses because we start
at the -4G virtual address and go downwards and the mappings will have
the same addresses per UEFI implementation.

It'll make more sense when you see the code, I hope :)

Thanks.

--
Regards/Gruss,
Boris.