Re: [kvm-unit-tests PATCH v2 0/6] Initial x86_64 UEFI support

Sean Christopherson
2021-08-21T00:01:26Z

On Thu, Aug 19, 2021, Varad Gautam wrote:
> This series brings EFI support to kvm-unit-tests on x86_64.
>
> EFI support works by changing the test entrypoint to a stub entry
> point for the EFI loader to jump to in long mode, where the test binary
> exits EFI boot services, performs the remaining CPU bootstrapping,
> and then calls the testcase main().
>
> Since the EFI loader only understands PE objects, the first commit
> introduces a `configure --efi` mode which builds each test as a shared
> lib. This shared lib is repackaged into a PE via objdump.
>
> Commit 2-4 take a trip from the asm entrypoint to C to exit EFI and
> relocate ELF .dynamic contents.
>
> Commit 5 adds post-EFI long mode x86_64 setup and calls the testcase.
>
> Commit 6 from Zixuan [1] fixes up some testcases with non-PIC inline
> asm stubs which allows building these as PIC.
>
> Changes in v2:
> - Add Zixuan's patch to enable more testcases.
> - Fix TSS setup in cstart64.S for CONFIG_EFI.
>
> [1]: https://lore.kernel.org/r/20210818000905.1111226-10-zixuanwang@google.com/
> git tree: https://github.com/varadgautam/kvm-unit-tests/tree/efi-stub-v2
>
> Varad Gautam (5):
> x86: Build tests as PE objects for the EFI loader
> x86: Call efi_main from _efi_pe_entry
> x86: efi_main: Get EFI memory map and exit boot services
> x86: efi_main: Self-relocate ELF .dynamic addresses
> cstart64.S: x86_64 bootstrapping after exiting EFI

Zixuan and Varad, are your two series complimentary or do they conflict? E.g.
can Zixuan's series be applied on top with little-to-no change to Varad's patches,
or are both series trying to do the same things in different ways?

And if they conflict, are the conflicts largely superficial, or are there
fundamental differences in how the problems are being solved?

Thanks!

> Zixuan Wang (1):
> x86 UEFI: Convert x86 test cases to PIC