[edk2-devel] [PATCH 00/43] OvmfPkg: remove Xen support from OvmfPkg*.dsc, in favor of OvmfXen.dsc
Laszlo Ersek
lersek at redhat.com
Thu May 27 16:30:18 UTC 2021
On 05/27/21 15:07, Leif Lindholm wrote:
> On Wed, May 26, 2021 at 22:14:03 +0200, Laszlo Ersek wrote:
>> Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=2122
>> Repo: https://pagure.io/lersek/edk2.git
>> Branch: xen_split_bz_2122
>>
>> This patch set removes dynamic Xen enlightenment from the following
>> platforms:
>>
>> OvmfPkg/OvmfPkgIa32.dsc
>> OvmfPkg/OvmfPkgIa32X64.dsc
>> OvmfPkg/OvmfPkgX64.dsc
>>
>> In Xen guests, the following platform should be used:
>>
>> OvmfPkg/OvmfXen.dsc
>>
>> Please see more details / references in the bugzilla ticket.
>>
>> NOOPT build savings:
>>
>> - Ia32: PEIFV 1536 bytes, DXEFV 130288 bytes
>> - Ia32X64: PEIFV 1536 bytes, DXEFV 140912 bytes
>> - X64: PEIFV 1664 bytes, DXEFV 140912 bytes
>> - Xen: PEIFV 256 bytes, DXEFV 69504 bytes
>>
>> Functional testing:
>>
>> - Booted a Fedora guest on OvmfPkgIa32X64 on QEMU/KVM, compared verbose
>> logs before-after. Memory allocations were satisfied at different
>> addresses, as expected, plus the Xen drivers were absent. No
>> differences otherwise.
>>
>> - Booted a RHEL guest on ArmVirtQemu on AARCH64. Memory allocations were
>> satisfied at different addresses, as expected.
>>
>> - Xen regression-testing was not done; I'm requesting feedback.
>>
>> Build testing / bisectability: at every stage, the series builds with
>> the following script:
>>
>>> #!/bin/bash
>>> set -e -u -C
>>>
>>> build -b DEBUG -t GCC5 -p ArmVirtPkg/ArmVirtKvmTool.dsc -a AARCH64
>>> build -b DEBUG -t GCC5 -p ArmVirtPkg/ArmVirtKvmTool.dsc -a ARM
>>> build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc -a AARCH64
>>> build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc -a ARM
>>> build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemuKernel.dsc -a AARCH64
>>> build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemuKernel.dsc -a ARM
>>> build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtXen.dsc -a AARCH64
>>> build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtXen.dsc -a ARM
>>> build -b NOOPT -t GCC5 -p OvmfPkg/AmdSev/AmdSevX64.dsc -a X64
>>> build -b NOOPT -t GCC5 -p OvmfPkg/Bhyve/BhyveX64.dsc -a X64
>>> build -b NOOPT -t GCC5 -p OvmfPkg/OvmfPkgIa32.dsc -a IA32
>>> build -b NOOPT -t GCC5 -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64
>>> build -b NOOPT -t GCC5 -p OvmfPkg/OvmfPkgX64.dsc -a X64
>>> build -b NOOPT -t GCC5 -p OvmfPkg/OvmfXen.dsc -a X64
>>
>> The patches in the series were formatted with the following options, for
>> posting:
>>
>> --stat=1000 --stat-graph-width=20 --find-copies-harder -U6
>>
>> (The option "--find-copies-harder" is not the best for presenting every
>> single patch in the series, in isolation, but taken globally for the
>> entire series, it is the most helpful option.)
>>
>> Some patches advance with really small steps, in order to cut down on a
>> subsequent "meaty" patch. Personally I don't like reviewing code
>> movement patches, so I did my best to (a) keep that to a minimum, and
>> (b) present it as unintrusively as possible.
>>
>> The CC list is a bit long; the reason is that I kept touching up
>> "Maintainers.txt", and the "OvmfPkg/Bhyve" and "OvmfPkg/AmdSev"
>> platforms as well (whenever it made sense).
>
> I presume I was primarily cc:d for the Maintainers.txt bit?
Correct!
> For that (patches 11, 12, 21):
> Reviewed-by: Leif Lindholm <leif at nuviainc.com>
Thanks!
Laszlo
>
>> Cc: Andrew Fish <afish at apple.com>
>> Cc: Anthony Perard <anthony.perard at citrix.com>
>> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
>> Cc: Brijesh Singh <brijesh.singh at amd.com>
>> Cc: Erdem Aktas <erdemaktas at google.com>
>> Cc: James Bottomley <jejb at linux.ibm.com>
>> Cc: Jiewen Yao <jiewen.yao at intel.com>
>> Cc: Jordan Justen <jordan.l.justen at intel.com>
>> Cc: Julien Grall <julien at xen.org>
>> Cc: Leif Lindholm <leif at nuviainc.com>
>> Cc: Michael D Kinney <michael.d.kinney at intel.com>
>> Cc: Min Xu <min.m.xu at intel.com>
>> Cc: Peter Grehan <grehan at freebsd.org>
>> Cc: Philippe Mathieu-Daudé <philmd at redhat.com>
>> Cc: Rebecca Cran <rebecca at bsdio.com>
>> Cc: Tom Lendacky <thomas.lendacky at amd.com>
>>
>> Thanks,
>> Laszlo
>>
>> Laszlo Ersek (43):
>> OvmfPkg: remove the Xen drivers from the IA32, IA32X64, and X64
>> platforms
>> OvmfPkg: remove the Xen drivers from the AmdSev platform
>> OvmfPkg: switch IA32, IA32X64, X64 to the fw_cfg-only ACPI platform
>> driver
>> OvmfPkg: switch the AmdSev platform to the fw_cfg-only ACPI platform
>> driver
>> OvmfPkg/README: bump minimum QEMU version to 1.7.1, machine types to
>> 1.7
>> OvmfPkg/AcpiPlatformDxe: fix header file warts
>> OvmfPkg/AcpiPlatformDxe: sort #includes and [LibraryClasses]
>> OvmfPkg/AcpiPlatformDxe/QemuLoader.h: remove QemuFwCfgLib class
>> dependency
>> OvmfPkg/AcpiPlatformDxe: move "QemuLoader.h" to IndustryStandard
>> OvmfPkg/AcpiPlatformDxe: consolidate #includes and [LibraryClasses]
>> OvmfPkg/XenAcpiPlatformDxe: create from AcpiPlatformDxe
>> OvmfPkg/AcpiPlatformDxe: remove the "AcpiPlatformDxe.inf" driver
>> OvmfPkg/XenAcpiPlatformDxe: remove the QEMU ACPI linker/loader client
>> OvmfPkg/XenAcpiPlatformDxe: remove QEMU fw_cfg dependency
>> OvmfPkg/XenAcpiPlatformDxe: remove the InstallAcpiTable() helper
>> function
>> OvmfPkg/XenAcpiPlatformDxe: remove OVMF's built-in ACPI tables
>> OvmfPkg/Bhyve/AcpiPlatformDxe: fix file path typo in comment
>> OvmfPkg/AcpiTables: remove unused module
>> OvmfPkg/OvmfXen: make "PcdPciDisableBusEnumeration" Fixed-at-Build
>> OvmfPkg/XenAcpiPlatformDxe: remove delayed ACPI table installation
>> OvmfPkg/PlatformPei: remove Xen support
>> OvmfPkg: drop PcdPciDisableBusEnumeration from the IA32, IA32X64, X64
>> DSCs
>> OvmfPkg: drop PcdPciDisableBusEnumeration from the AmdSev platform
>> OvmfPkg/Bhyve: make "PcdPciDisableBusEnumeration" Fixed-at-Build
>> OvmfPkg/OvmfXen: remove IncompatiblePciDeviceSupport DXE driver
>> OvmfPkg/Bhyve: remove IncompatiblePciDeviceSupport DXE driver
>> OvmfPkg/IncompatiblePciDeviceSupportDxe: remove
>> PcdPciDisableBusEnumeration
>> OvmfPkg/PciHostBridgeLib: consolidate #includes and INF file sections
>> OvmfPkg/PciHostBridgeLibScan: create from PciHostBridgeLib
>> OvmfPkg/Bhyve: consume PciHostBridgeLibScan
>> OvmfPkg/OvmfXen: consume PciHostBridgeLibScan
>> OvmfPkg/PciHostBridgeLib: remove Bhyve and Xen support
>> OvmfPkg/PciHostBridgeLibScan: remove QEMU (fw_cfg) support
>> OvmfPkg/PciHostBridgeLibScan: remove PcdOvmfHostBridgePciDevId
>> OvmfPkg/PciHostBridgeLibScan: clean up file names and file-top
>> comments
>> OvmfPkg/SmbiosPlatformDxe: clean up #includes and INF
>> OvmfPkg/SmbiosPlatformDxe: return EFI_NOT_FOUND if there is no SMBIOS
>> data
>> OvmfPkg/SmbiosPlatformDxe: locate SMBIOS protocol in
>> InstallAllStructures()
>> OvmfPkg/SmbiosPlatformDxe: split GetXenSmbiosTables() decl. to new
>> header
>> OvmfPkg/SmbiosPlatformDxe: declare InstallAllStructures() in header
>> file
>> OvmfPkg/SmbiosPlatformDxe: create Xen-specific module INF file
>> OvmfPkg/SmbiosPlatformDxe: split Xen entry point from QEMU entry point
>> OvmfPkg: restrict XenPlatformLib to BdsDxe in the IA32, IA32X64, X64
>> DSCs
>>
>> Maintainers.txt | 10 +-
>> OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c | 262 --------
>> OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h | 50 +-
>> OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 71 --
>> OvmfPkg/AcpiPlatformDxe/BootScript.c | 7 +-
>> OvmfPkg/AcpiPlatformDxe/EntryPoint.c | 7 +-
>> OvmfPkg/AcpiPlatformDxe/PciDecoding.c | 4 +-
>> OvmfPkg/AcpiPlatformDxe/Qemu.c | 511 ---------------
>> OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c | 21 +-
>> OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf | 5 +-
>> OvmfPkg/AcpiTables/AcpiTables.inf | 38 --
>> OvmfPkg/AcpiTables/Dsdt.asl | 692 --------------------
>> OvmfPkg/AcpiTables/Facp.aslc | 89 ---
>> OvmfPkg/AcpiTables/Facs.aslc | 78 ---
>> OvmfPkg/AcpiTables/Madt.aslc | 153 -----
>> OvmfPkg/AcpiTables/Platform.h | 68 --
>> OvmfPkg/AcpiTables/Ssdt.asl | 13 -
>> OvmfPkg/AmdSev/AmdSevX64.dsc | 9 +-
>> OvmfPkg/AmdSev/AmdSevX64.fdf | 12 +-
>> OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatform.c | 2 +-
>> OvmfPkg/Bhyve/BhyveX64.dsc | 5 +-
>> OvmfPkg/Bhyve/BhyveX64.fdf | 1 -
>> OvmfPkg/Bhyve/PlatformPei/PlatformPei.inf | 1 -
>> OvmfPkg/{AcpiPlatformDxe => Include/IndustryStandard}/QemuLoader.h | 8 +-
>> OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c | 10 +-
>> OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf | 2 -
>> OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c | 28 +-
>> OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf | 8 +-
>> OvmfPkg/Library/{PciHostBridgeLib => PciHostBridgeLibScan}/PciHostBridge.h | 4 +-
>> OvmfPkg/Library/PciHostBridgeLibScan/PciHostBridgeLib.c | 74 +++
>> OvmfPkg/Library/{PciHostBridgeLib/PciHostBridgeLib.inf => PciHostBridgeLibScan/PciHostBridgeLibScan.inf} | 24 +-
>> OvmfPkg/Library/{PciHostBridgeLib/XenSupport.c => PciHostBridgeLibScan/ScanForRootBridges.c} | 27 +-
>> OvmfPkg/OvmfPkgIa32.dsc | 10 +-
>> OvmfPkg/OvmfPkgIa32.fdf | 12 +-
>> OvmfPkg/OvmfPkgIa32X64.dsc | 10 +-
>> OvmfPkg/OvmfPkgIa32X64.fdf | 12 +-
>> OvmfPkg/OvmfPkgX64.dsc | 10 +-
>> OvmfPkg/OvmfPkgX64.fdf | 12 +-
>> OvmfPkg/OvmfXen.dsc | 10 +-
>> OvmfPkg/OvmfXen.fdf | 12 +-
>> OvmfPkg/PlatformPei/MemDetect.c | 10 +-
>> OvmfPkg/PlatformPei/Platform.c | 162 +++--
>> OvmfPkg/PlatformPei/Platform.h | 17 -
>> OvmfPkg/PlatformPei/PlatformPei.inf | 4 -
>> OvmfPkg/PlatformPei/Xen.c | 222 -------
>> OvmfPkg/PlatformPei/Xen.h | 39 --
>> OvmfPkg/README | 43 +-
>> OvmfPkg/SmbiosPlatformDxe/ArmXen.c | 2 +-
>> OvmfPkg/SmbiosPlatformDxe/Qemu.c | 41 +-
>> OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c | 79 +--
>> OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.h | 37 +-
>> OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 23 +-
>> OvmfPkg/SmbiosPlatformDxe/X86Xen.c | 8 +-
>> OvmfPkg/SmbiosPlatformDxe/Xen.c | 49 ++
>> OvmfPkg/SmbiosPlatformDxe/{ArmXen.c => XenSmbiosPlatformDxe.h} | 20 +-
>> OvmfPkg/SmbiosPlatformDxe/{SmbiosPlatformDxe.inf => XenSmbiosPlatformDxe.inf} | 32 +-
>> OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.c | 41 ++
>> OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.h | 28 +
>> OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c | 43 ++
>> OvmfPkg/{AcpiPlatformDxe => XenAcpiPlatformDxe}/Xen.c | 66 +-
>> OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf | 45 ++
>> OvmfPkg/XenPlatformPei/Platform.c | 1 -
>> OvmfPkg/XenPlatformPei/Platform.h | 5 -
>> OvmfPkg/XenPlatformPei/Xen.c | 20 -
>> OvmfPkg/XenPlatformPei/XenPlatformPei.inf | 1 -
>> 65 files changed, 593 insertions(+), 2827 deletions(-)
>> delete mode 100644 OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c
>> delete mode 100644 OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf
>> delete mode 100644 OvmfPkg/AcpiPlatformDxe/Qemu.c
>> delete mode 100644 OvmfPkg/AcpiTables/AcpiTables.inf
>> delete mode 100644 OvmfPkg/AcpiTables/Dsdt.asl
>> delete mode 100644 OvmfPkg/AcpiTables/Facp.aslc
>> delete mode 100644 OvmfPkg/AcpiTables/Facs.aslc
>> delete mode 100644 OvmfPkg/AcpiTables/Madt.aslc
>> delete mode 100644 OvmfPkg/AcpiTables/Platform.h
>> delete mode 100644 OvmfPkg/AcpiTables/Ssdt.asl
>> rename OvmfPkg/{AcpiPlatformDxe => Include/IndustryStandard}/QemuLoader.h (94%)
>> rename OvmfPkg/Library/{PciHostBridgeLib => PciHostBridgeLibScan}/PciHostBridge.h (57%)
>> create mode 100644 OvmfPkg/Library/PciHostBridgeLibScan/PciHostBridgeLib.c
>> copy OvmfPkg/Library/{PciHostBridgeLib/PciHostBridgeLib.inf => PciHostBridgeLibScan/PciHostBridgeLibScan.inf} (51%)
>> rename OvmfPkg/Library/{PciHostBridgeLib/XenSupport.c => PciHostBridgeLibScan/ScanForRootBridges.c} (91%)
>> delete mode 100644 OvmfPkg/PlatformPei/Xen.c
>> delete mode 100644 OvmfPkg/PlatformPei/Xen.h
>> create mode 100644 OvmfPkg/SmbiosPlatformDxe/Xen.c
>> copy OvmfPkg/SmbiosPlatformDxe/{ArmXen.c => XenSmbiosPlatformDxe.h} (56%)
>> copy OvmfPkg/SmbiosPlatformDxe/{SmbiosPlatformDxe.inf => XenSmbiosPlatformDxe.inf} (65%)
>> create mode 100644 OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.c
>> create mode 100644 OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.h
>> create mode 100644 OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c
>> rename OvmfPkg/{AcpiPlatformDxe => XenAcpiPlatformDxe}/Xen.c (82%)
>> create mode 100644 OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf
>>
>>
>> base-commit: cfa6ffb113f2c0d922034cc77c0d6c52eea05497
>> --
>> 2.19.1.3.g30247aa5d201
>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75817): https://edk2.groups.io/g/devel/message/75817
Mute This Topic: https://groups.io/mt/83110232/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list