mirror of
https://gitlab.com/qemu-project/qemu.git
synced 2026-08-26 22:23:12 -04:00
IGVM files can contain an initial VMSA that should be applied to each vcpu as part of the initial guest state. The sev_features flags are provided as part of the VMSA structure. However, KVM only allows sev_features to be set during initialization and not as the guest is being prepared for launch. This patch queries KVM for the supported set of sev_features flags and processes the VP context entries in the IGVM file during kvm_init to determine any sev_features flags set in the IGVM file. These are then provided in the call to KVM_SEV_INIT2 to ensure the guest state matches that specified in the IGVM file. The igvm process() function is modified to allow a partial processing of the file during initialization, with only the IGVM_VHT_VP_CONTEXT fields being processed. This means the function is called twice, firstly to extract the sev_features then secondly to actually configure the guest. Signed-off-by: Roy Hopkins <roy.hopkins@randomman.co.uk> Acked-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Acked-by: Gerd Hoffman <kraxel@redhat.com> Tested-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com> Reviewed-by: Ani Sinha <anisinha@redhat.com> Link: https://lore.kernel.org/r/b2f986aae04e1da2aee530c9be22a54c0c59a560.1751554099.git.roy.hopkins@randomman.co.uk Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
|---|---|---|
| .. | ||
| tpm | ||
| confidential-guest-support.c | ||
| cryptodev-builtin.c | ||
| cryptodev-hmp-cmds.c | ||
| cryptodev-lkcf.c | ||
| cryptodev-vhost-user.c | ||
| cryptodev-vhost.c | ||
| cryptodev.c | ||
| dbus-vmstate.c | ||
| dbus-vmstate1.xml | ||
| host_iommu_device.c | ||
| hostmem-epc.c | ||
| hostmem-file.c | ||
| hostmem-memfd.c | ||
| hostmem-ram.c | ||
| hostmem-shm.c | ||
| hostmem.c | ||
| igvm-cfg.c | ||
| igvm.c | ||
| igvm.h | ||
| iommufd.c | ||
| Kconfig | ||
| meson.build | ||
| rng-builtin.c | ||
| rng-egd.c | ||
| rng-random.c | ||
| rng.c | ||
| spdm-socket.c | ||
| trace-events | ||
| trace.h | ||
| vhost-user.c | ||