From 50d68c1d10f9e02be455cf8606bbc40528ea5ca9 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Tue, 14 Mar 2023 23:08:29 +0100 Subject: [PATCH] qemu: Don't drop firmware type/features information Now that we no longer reject configurations that include both this information and explicit firmware details, as long of course as everything is internally consistent, and that we've ensured that we produce maximally compatible XML on migration, we can stop stripping this information at the end of the firmware selection process. There are several advantages to keeping this information around: * if the user wants to change the firmware configuration for an existing VM, they can simply drop the and elements, tweak the firmware autoselection parameters and let libvirt pick a firmware that matches on the new requirements; * management applications can inspect the XML and easily figure out firmware-related information without having to reverse-engineer them based on some opaque paths. Overall, this change makes things more transparent and easier to understand. The improvement is so significant that, in a follow-up commit, we're going to ensure that this information is available in even more cases. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 3 --- .../firmware-auto-bios-stateless.x86_64-latest.xml | 2 +- .../qemuxml2xmloutdata/firmware-auto-bios.x86_64-latest.xml | 2 +- .../firmware-auto-efi-aarch64.aarch64-latest.xml | 2 +- .../firmware-auto-efi-enrolled-keys.x86_64-latest.xml | 6 +++++- .../firmware-auto-efi-format-loader-qcow2.x86_64-latest.xml | 2 +- .../firmware-auto-efi-format-loader-raw.aarch64-latest.xml | 2 +- ...uto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml | 2 +- ...mware-auto-efi-format-nvram-qcow2-path.x86_64-latest.xml | 2 +- .../firmware-auto-efi-format-nvram-qcow2.x86_64-latest.xml | 2 +- .../firmware-auto-efi-loader-insecure.x86_64-latest.xml | 2 +- .../firmware-auto-efi-loader-path.x86_64-latest.xml | 2 +- .../firmware-auto-efi-loader-secure.x86_64-latest.xml | 2 +- .../firmware-auto-efi-no-enrolled-keys.x86_64-latest.xml | 5 ++++- .../firmware-auto-efi-no-secboot.x86_64-latest.xml | 5 ++++- .../firmware-auto-efi-nvram-file.x86_64-latest.xml | 2 +- .../firmware-auto-efi-nvram-network-iscsi.x86_64-latest.xml | 2 +- .../firmware-auto-efi-nvram-network-nbd.x86_64-latest.xml | 2 +- .../firmware-auto-efi-nvram.x86_64-latest.xml | 2 +- .../firmware-auto-efi-secboot.x86_64-latest.xml | 5 ++++- .../firmware-auto-efi-smm-off.x86_64-latest.xml | 2 +- .../firmware-auto-efi-stateless.x86_64-latest.xml | 2 +- .../qemuxml2xmloutdata/firmware-auto-efi.x86_64-latest.xml | 2 +- .../pvpanic-pci-aarch64.aarch64-latest.xml | 2 +- .../pvpanic-pci-no-address-aarch64.aarch64-latest.xml | 2 +- .../virtio-iommu-aarch64.aarch64-latest.xml | 2 +- 26 files changed, 38 insertions(+), 28 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 250261f23a..21f947a0f5 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1593,9 +1593,6 @@ qemuFirmwareFillDomainModern(virQEMUDriver *driver, if (qemuFirmwareEnableFeaturesModern(cfg, def, theone) < 0) goto cleanup; - def->os.firmware = VIR_DOMAIN_OS_DEF_FIRMWARE_NONE; - VIR_FREE(def->os.firmwareFeatures); - ret = 0; cleanup: diff --git a/tests/qemuxml2xmloutdata/firmware-auto-bios-stateless.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-bios-stateless.x86_64-latest.xml index c7c6e23ea1..d1ecd8593f 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-bios-stateless.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-bios-stateless.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/seabios/bios-256k.bin diff --git a/tests/qemuxml2xmloutdata/firmware-auto-bios.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-bios.x86_64-latest.xml index 4e0b45cccd..68e14d3e4b 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-bios.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-bios.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/seabios/bios-256k.bin diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-aarch64.aarch64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-aarch64.aarch64-latest.xml index 2eb5ab05fe..6da924793b 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-aarch64.aarch64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-aarch64.aarch64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/AAVMF/AAVMF_CODE.qcow2 /var/lib/libvirt/qemu/nvram/guest_VARS.qcow2 diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-enrolled-keys.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-enrolled-keys.x86_64-latest.xml index 6814784721..90c5040ca6 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-enrolled-keys.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-enrolled-keys.x86_64-latest.xml @@ -4,8 +4,12 @@ 1048576 1048576 1 - + hvm + + + + /usr/share/OVMF/OVMF_CODE.secboot.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-qcow2.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-qcow2.x86_64-latest.xml index 00568560b6..9f0f3509f2 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-qcow2.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-qcow2.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.qcow2 /var/lib/libvirt/qemu/nvram/guest_VARS.qcow2 diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-raw.aarch64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-raw.aarch64-latest.xml index b53f39a72e..8ab29edf42 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-raw.aarch64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-loader-raw.aarch64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/AAVMF/AAVMF_CODE.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml index f3ab8f6744..42b044d83f 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.qcow2 diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-path.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-path.x86_64-latest.xml index c07a29aabd..6b53262dc7 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-path.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2-path.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.qcow2 /path/to/guest_VARS.qcow2 diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2.x86_64-latest.xml index 00568560b6..9f0f3509f2 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-format-nvram-qcow2.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.qcow2 /var/lib/libvirt/qemu/nvram/guest_VARS.qcow2 diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-insecure.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-insecure.x86_64-latest.xml index a6af5512d3..55da8ee12f 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-insecure.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-insecure.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-path.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-path.x86_64-latest.xml index 8b3853dc17..3977ddc0c7 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-path.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-path.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-secure.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-secure.x86_64-latest.xml index 6814784721..1b1b9352c1 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-secure.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-loader-secure.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.secboot.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-no-enrolled-keys.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-no-enrolled-keys.x86_64-latest.xml index 6722b22aa1..78b3b81506 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-no-enrolled-keys.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-no-enrolled-keys.x86_64-latest.xml @@ -4,8 +4,11 @@ 1048576 1048576 1 - + hvm + + + /usr/share/OVMF/OVMF_CODE.secboot.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-no-secboot.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-no-secboot.x86_64-latest.xml index 8b3853dc17..57e63a079c 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-no-secboot.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-no-secboot.x86_64-latest.xml @@ -4,8 +4,11 @@ 1048576 1048576 1 - + hvm + + + /usr/share/OVMF/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-file.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-file.x86_64-latest.xml index cdb5d2b31a..8117f02f15 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-file.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-file.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-iscsi.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-iscsi.x86_64-latest.xml index 5a2e8715a0..d3ef57f682 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-iscsi.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-iscsi.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-nbd.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-nbd.x86_64-latest.xml index 208257bb5b..6d0d112dd1 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-nbd.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram-network-nbd.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram.x86_64-latest.xml index f039d79ae4..d293cd3371 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-nvram.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.secboot.fd /path/to/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-secboot.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-secboot.x86_64-latest.xml index 6814784721..6dcc5ea88d 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-secboot.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-secboot.x86_64-latest.xml @@ -4,8 +4,11 @@ 1048576 1048576 1 - + hvm + + + /usr/share/OVMF/OVMF_CODE.secboot.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-smm-off.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-smm-off.x86_64-latest.xml index 3a50158fba..40d8b8815b 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-smm-off.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-smm-off.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi-stateless.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi-stateless.x86_64-latest.xml index 3bc9a7341e..7939dc666b 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi-stateless.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi-stateless.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF.sev.fd diff --git a/tests/qemuxml2xmloutdata/firmware-auto-efi.x86_64-latest.xml b/tests/qemuxml2xmloutdata/firmware-auto-efi.x86_64-latest.xml index 6814784721..1b1b9352c1 100644 --- a/tests/qemuxml2xmloutdata/firmware-auto-efi.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/firmware-auto-efi.x86_64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/OVMF/OVMF_CODE.secboot.fd /var/lib/libvirt/qemu/nvram/guest_VARS.fd diff --git a/tests/qemuxml2xmloutdata/pvpanic-pci-aarch64.aarch64-latest.xml b/tests/qemuxml2xmloutdata/pvpanic-pci-aarch64.aarch64-latest.xml index 74e20499fd..50321aedd6 100644 --- a/tests/qemuxml2xmloutdata/pvpanic-pci-aarch64.aarch64-latest.xml +++ b/tests/qemuxml2xmloutdata/pvpanic-pci-aarch64.aarch64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/AAVMF/AAVMF_CODE.qcow2 /var/lib/libvirt/qemu/nvram/guest_VARS.qcow2 diff --git a/tests/qemuxml2xmloutdata/pvpanic-pci-no-address-aarch64.aarch64-latest.xml b/tests/qemuxml2xmloutdata/pvpanic-pci-no-address-aarch64.aarch64-latest.xml index f92d222cfe..9a25573614 100644 --- a/tests/qemuxml2xmloutdata/pvpanic-pci-no-address-aarch64.aarch64-latest.xml +++ b/tests/qemuxml2xmloutdata/pvpanic-pci-no-address-aarch64.aarch64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/AAVMF/AAVMF_CODE.qcow2 /var/lib/libvirt/qemu/nvram/guest_VARS.qcow2 diff --git a/tests/qemuxml2xmloutdata/virtio-iommu-aarch64.aarch64-latest.xml b/tests/qemuxml2xmloutdata/virtio-iommu-aarch64.aarch64-latest.xml index 9e4f81fde8..d560259d87 100644 --- a/tests/qemuxml2xmloutdata/virtio-iommu-aarch64.aarch64-latest.xml +++ b/tests/qemuxml2xmloutdata/virtio-iommu-aarch64.aarch64-latest.xml @@ -4,7 +4,7 @@ 1048576 1048576 1 - + hvm /usr/share/AAVMF/AAVMF_CODE.qcow2 /var/lib/libvirt/qemu/nvram/guest_VARS.qcow2