From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mx.groups.io with SMTP id smtpd.web09.6598.1622120845363676330 for ; Thu, 27 May 2021 06:07:25 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nuviainc-com.20150623.gappssmtp.com header.s=20150623 header.b=RwcoTL2n; spf=pass (domain: nuviainc.com, ip: 209.85.221.43, mailfrom: leif@nuviainc.com) Received: by mail-wr1-f43.google.com with SMTP id m18so4720684wrv.2 for ; Thu, 27 May 2021 06:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nuviainc-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=DNm+W9pqOcqv8WTSGSpcIIt1Z8p+VnMUzIcwCtIiOpU=; b=RwcoTL2nSpBxIyZNeBAWRruECHu95p8uXuKBVI8c7vEsomjsnw+6G9emQ7QFUQmx9o WziPs4LpE44nYeR11Y9cYlf7ES3iU3myXQb/yhBEJ1KW3borhXE51ATBBt0rpbFsxGFO WHW/PzeWU9VlRh23SNCRu75KntD56n2hqNGuGGnxpnlPQRaErXTCkJNJoQMNV0X4fSjY ojmbETyCS+P7I2s9kzZxNpNmHX4kSwbQFAt0zTi9yjY+ktYdxstgqzecmpVAjMs02Ta/ Nybs+FhZ73rDVXUH6cpUjDlic/qs1ArGDNWaivq1ashVxM1MEsype94AL9BgiZU2mNdM hXxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=DNm+W9pqOcqv8WTSGSpcIIt1Z8p+VnMUzIcwCtIiOpU=; b=EX/FF8jLoYRqdTCcx/Ux0YTuUwAhAvX2Wck9gbleJCFv+uGlwngUa5BEADkwXYNiQn tc17di86yjQAS11PKKxqQ8eGSLRDa67MXhDDPyMjbRL5zlxvnij2fyKFaQztCLq0CFOv znTkxYO4RJepmlRGzCEcz2azqaaozdvbwTltkZPhbd2h+NC/s4t0tRGQQvyOmsxzQuqW AkuVErcFVR5wi/nKIdvab0+X/BhenQy2SClmQgk5RuTMcQ3ZVjytJ+/wn7cRDJXTgRnh OmNdxpx7FwHT60IYnTEc0Fa5dvpmNg29SmO8UQmY/aSftboaUfpe+SYtELpqfKbIQjGC 17Qw== X-Gm-Message-State: AOAM532VE/bVgphSx2kOJL5NmhM4oq4uvzUUa1hvlvA9sHArHEguz5WN GlDDr4/A5aZkOKMmxvtzlqvBaA== X-Google-Smtp-Source: ABdhPJxEKRPXEehyNGVe2BRzeqepzLJYsyOJck4p53Hja1wuFXu8DcadbtbGoa3XF+q8OE7KN9ptXQ== X-Received: by 2002:a5d:4d92:: with SMTP id b18mr3264873wru.167.1622120843805; Thu, 27 May 2021 06:07:23 -0700 (PDT) Return-Path: Received: from leviathan (cpc1-cmbg19-2-0-cust915.5-4.cable.virginm.net. [82.27.183.148]) by smtp.gmail.com with ESMTPSA id u18sm2821239wmj.15.2021.05.27.06.07.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 May 2021 06:07:23 -0700 (PDT) Date: Thu, 27 May 2021 14:07:21 +0100 From: "Leif Lindholm" To: Laszlo Ersek Cc: devel@edk2.groups.io, Andrew Fish , Anthony Perard , Ard Biesheuvel , Brijesh Singh , Erdem Aktas , James Bottomley , Jiewen Yao , Jordan Justen , Julien Grall , Michael D Kinney , Min Xu , Peter Grehan , Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Rebecca Cran , Tom Lendacky Subject: Re: [PATCH 00/43] OvmfPkg: remove Xen support from OvmfPkg*.dsc, in favor of OvmfXen.dsc Message-ID: <20210527130721.5dufj4gy2kyiw2o6@leviathan> References: <20210526201446.12554-1-lersek@redhat.com> MIME-Version: 1.0 In-Reply-To: <20210526201446.12554-1-lersek@redhat.com> Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit 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? For that (patches 11, 12, 21): Reviewed-by: Leif Lindholm > Cc: Andrew Fish > Cc: Anthony Perard > Cc: Ard Biesheuvel > Cc: Brijesh Singh > Cc: Erdem Aktas > Cc: James Bottomley > Cc: Jiewen Yao > Cc: Jordan Justen > Cc: Julien Grall > Cc: Leif Lindholm > Cc: Michael D Kinney > Cc: Min Xu > Cc: Peter Grehan > Cc: Philippe Mathieu-Daudé > Cc: Rebecca Cran > Cc: Tom Lendacky > > 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 >