mbox series

[kvm-unit-tests,v3,00/18] arm64: EFI improvements

Message ID 20240305164623.379149-20-andrew.jones@linux.dev (mailing list archive)
Headers show
Series arm64: EFI improvements | expand

Message

Andrew Jones March 5, 2024, 4:46 p.m. UTC
This series collects one fix ("Update MAX_SMP probe") with a bunch of
improvements to the EFI setup code and run script. With the series
applied one can add --enable-efi-direct when configuring and then
run the EFI tests on QEMU much, much faster by using direct kernel
boot for them (and environment variables will work too). The non-
direct (original) way of running the EFI tests has also been sped up
a bit by not running the dummy test and not generating the dtb twice.
The cleanups in the setup code allow duplicated code to be removed
(by sharing with the non-EFI setup code) and eventually for riscv
to share some code too with the introduction of memregions_efi_init().

v3:
 - Dropped fdt_valid
 - Factored out qemu_args+=(-machine acpi=off) [Nikos]
 - Ensure etext is page aligned
 - Picked up Nikos's r-b's

v2:
 - Add another improvement (patches 15-17), which is to stop mapping
   EFI regions which we consider reserved (including
   EFI_BOOT_SERVICES_DATA regions which requires moving the primary stack)
 - Add EFI gitlab CI tests
 - Fix one typo in configure help text


Andrew Jones (17):
  runtime: Update MAX_SMP probe
  runtime: Add yet another 'no kernel' error message
  arm64: efi: Don't create dummy test
  arm64: efi: Remove redundant dtb generation
  arm64: efi: Move run code into a function
  arm64: efi: Remove EFI_USE_DTB
  arm64: efi: Improve device tree discovery
  lib/efi: Add support for loading the initrd
  arm64: efi: Allow running tests directly
  arm/arm64: Factor out some initial setup
  arm/arm64: Factor out allocator init from mem_init
  arm64: Simplify efi_mem_init
  arm64: Add memregions_efi_init
  arm64: efi: Don't map reserved regions
  arm64: efi: Fix _start returns from failed _relocate
  arm64: efi: Switch to our own stack
  arm64: efi: Add gitlab CI

Shaoqin Huang (1):
  arm64: efi: Make running tests on EFI can be parallel

 .gitlab-ci.yml              |  32 ++++-
 arm/efi/crt0-efi-aarch64.S  |  37 ++++--
 arm/efi/elf_aarch64_efi.lds |   1 +
 arm/efi/run                 |  64 ++++++----
 arm/run                     |   6 +-
 configure                   |  17 +++
 lib/arm/mmu.c               |   6 +-
 lib/arm/setup.c             | 227 ++++++++++++++----------------------
 lib/efi.c                   |  84 +++++++++++--
 lib/linux/efi.h             |  29 +++++
 lib/memregions.c            |  53 +++++++++
 lib/memregions.h            |   6 +
 run_tests.sh                |   5 +-
 scripts/runtime.bash        |  21 ++--
 14 files changed, 389 insertions(+), 199 deletions(-)

Comments

Andrew Jones March 18, 2024, 4:47 p.m. UTC | #1
On Tue, Mar 05, 2024 at 05:46:24PM +0100, Andrew Jones wrote:
> This series collects one fix ("Update MAX_SMP probe") with a bunch of
> improvements to the EFI setup code and run script. With the series
> applied one can add --enable-efi-direct when configuring and then
> run the EFI tests on QEMU much, much faster by using direct kernel
> boot for them (and environment variables will work too). The non-
> direct (original) way of running the EFI tests has also been sped up
> a bit by not running the dummy test and not generating the dtb twice.
> The cleanups in the setup code allow duplicated code to be removed
> (by sharing with the non-EFI setup code) and eventually for riscv
> to share some code too with the introduction of memregions_efi_init().
> 
> v3:
>  - Dropped fdt_valid
>  - Factored out qemu_args+=(-machine acpi=off) [Nikos]
>  - Ensure etext is page aligned
>  - Picked up Nikos's r-b's
> 
> v2:
>  - Add another improvement (patches 15-17), which is to stop mapping
>    EFI regions which we consider reserved (including
>    EFI_BOOT_SERVICES_DATA regions which requires moving the primary stack)
>  - Add EFI gitlab CI tests
>  - Fix one typo in configure help text
> 
> 
> Andrew Jones (17):
>   runtime: Update MAX_SMP probe
>   runtime: Add yet another 'no kernel' error message
>   arm64: efi: Don't create dummy test
>   arm64: efi: Remove redundant dtb generation
>   arm64: efi: Move run code into a function
>   arm64: efi: Remove EFI_USE_DTB
>   arm64: efi: Improve device tree discovery
>   lib/efi: Add support for loading the initrd
>   arm64: efi: Allow running tests directly
>   arm/arm64: Factor out some initial setup
>   arm/arm64: Factor out allocator init from mem_init
>   arm64: Simplify efi_mem_init
>   arm64: Add memregions_efi_init
>   arm64: efi: Don't map reserved regions
>   arm64: efi: Fix _start returns from failed _relocate
>   arm64: efi: Switch to our own stack
>   arm64: efi: Add gitlab CI
> 
> Shaoqin Huang (1):
>   arm64: efi: Make running tests on EFI can be parallel
> 
>  .gitlab-ci.yml              |  32 ++++-
>  arm/efi/crt0-efi-aarch64.S  |  37 ++++--
>  arm/efi/elf_aarch64_efi.lds |   1 +
>  arm/efi/run                 |  64 ++++++----
>  arm/run                     |   6 +-
>  configure                   |  17 +++
>  lib/arm/mmu.c               |   6 +-
>  lib/arm/setup.c             | 227 ++++++++++++++----------------------
>  lib/efi.c                   |  84 +++++++++++--
>  lib/linux/efi.h             |  29 +++++
>  lib/memregions.c            |  53 +++++++++
>  lib/memregions.h            |   6 +
>  run_tests.sh                |   5 +-
>  scripts/runtime.bash        |  21 ++--
>  14 files changed, 389 insertions(+), 199 deletions(-)
> 
> -- 
> 2.44.0
>

Merged.

Thanks,
drew