[kvm-unit-tests PATCH v2 00/10] x86_64 UEFI set up process refactor and scripts fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

This patch series refactors the x86_64 UEFI set up process, fixes the
`run-tests.sh` script to run under UEFI, and improves the boot speed
under UEFI. The patches are organized as four parts.

The first part (patches 1-3) refactors the x86_64 UEFI set up process.
The previous UEFI setup calls arch-specific setup functions twice and
generates arch-specific data structure. As Andrew suggested [1], we
refactor this process to make only one call to the arch-specific
function and generate arch-neutral data structures. This simplifies the
set up process and makes it easier to develop UEFI support for other
architectures.

The second part (patch 4) converts several x86 test cases to
position-independent code (PIC) to run under UEFI. This patch is ported
from the initial UEFI support patchset [2] with fixes to the 32-bit
compilation.

The third part (patches 5-8) fixes the UEFI runner scripts. Patch 5
sets UEFI OVMF image as read-only. Patch 6 fixes test cases' return
code under UEFI, enabling Patch 7-8 to fix the `run-tests.sh` script
under UEFI.

The fourth part (patches 9-10) improves the boot speed under UEFI.
Patch 9 renames the EFI executables to EFI/BOOT/BOOTX64.EFI. UEFI OVMF
recognizes this file by default and skips the 5-second user input
waiting. Patch 10 makes `run-tests.sh` work with this new EFI
executable filename.

This patchset is based on the `uefi` branch.

Changes since V1:
V2 Patch #  Changes
----------  -------
     03/10  (New patch from Sean) Skip SEV-ES setup if SEV is not
            available
     04/10  Add more details to the commit message
     06/10  Add UEFI shutdown in case exit() doesn't work
     07/10  Simplify variable usages in scripts
     08/10  Simplify variable usages in scripts
     09/10  (New patch) Improve UEFI boot speed
     10/10  (New patch) Update run-tests.sh

Best regards,
Zixuan Wang and Marc Orr

[1] https://lore.kernel.org/kvm/20211005060549.clar5nakynz2zecl@xxxxxxxxxx/
[2] https://lore.kernel.org/kvm/20211004204931.1537823-1-zxwang42@xxxxxxxxx/


Marc Orr (3):
  scripts: Generalize EFI check
  x86 UEFI: Make run_tests.sh (mostly) work under UEFI
  x86 UEFI: Make _NO_FILE_4Uhere_ work w/ BOOTX64.EFI

Sean Christopherson (1):
  x86 AMD SEV: Skip SEV-ES if SEV is unsupported

Zixuan Wang (6):
  x86 UEFI: Remove mixed_mode
  x86 UEFI: Refactor set up process
  x86 UEFI: Convert x86 test cases to PIC
  x86 UEFI: Set UEFI OVMF as readonly
  x86 UEFI: Exit QEMU with return code
  x86 UEFI: Improve Boot Speed

 lib/efi.c            |  63 +++++++--
 lib/efi.h            |  19 ++-
 lib/linux/efi.h      | 317 ++++++++++++++-----------------------------
 lib/x86/acpi.c       |  36 +++--
 lib/x86/acpi.h       |   5 +-
 lib/x86/asm/setup.h  |  16 +--
 lib/x86/setup.c      | 145 +++++++++-----------
 lib/x86/usermode.c   |   3 +-
 scripts/runtime.bash |  14 +-
 x86/Makefile.common  |  10 +-
 x86/Makefile.x86_64  |   7 +-
 x86/access.c         |   9 +-
 x86/cet.c            |   8 +-
 x86/efi/run          |  45 +++---
 x86/emulator.c       |   5 +-
 x86/eventinj.c       |   8 ++
 x86/run              |   6 +-
 x86/smap.c           |  13 +-
 x86/umip.c           |  26 +++-
 19 files changed, 361 insertions(+), 394 deletions(-)

-- 
2.33.0




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux