[PATCH v1 0/8] Introducing guest driven VM launch update mechanism (BYOF interface)

Ani Sinha posted 8 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260624055339.46862-1-anisinha@redhat.com
Maintainers: Gerd Hoffmann <kraxel@redhat.com>, Stefano Garzarella <sgarzare@redhat.com>, Ani Sinha <anisinha@redhat.com>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>, Peter Maydell <peter.maydell@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Zhao Liu <zhao1.liu@intel.com>, Fabiano Rosas <farosas@suse.de>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
MAINTAINERS                                   |  12 +
backends/igvm-cfg.c                           |   1 +
backends/igvm.c                               |  91 +++--
docs/specs/index.rst                          |   1 +
docs/specs/vmlaunchupdate.rst                 | 147 ++++++++
hw/misc/meson.build                           |   3 +
hw/misc/trace-events                          |   5 +
hw/misc/vmlaunchupdate.c                      | 236 +++++++++++++
include/hw/misc/vmlaunchupdate.h              |  85 +++++
include/system/igvm-internal.h                |   8 +-
include/system/igvm.h                         |   3 +
tests/data/igvm/README                        |  24 ++
tests/data/igvm/hello.igvm                    | Bin 0 -> 153624 bytes
tests/data/igvm/qemuinit.igvm                 | Bin 0 -> 256856 bytes
tests/functional/aarch64/meson.build          |   1 +
.../aarch64/test_vm_launch_update_aarch.py    |  33 ++
tests/functional/x86_64/meson.build           |   1 +
.../x86_64/test_vm_launch_update.py           |  48 +++
tests/qtest/launchupdate-test.c               | 321 ++++++++++++++++++
tests/qtest/meson.build                       |   2 +
20 files changed, 989 insertions(+), 33 deletions(-)
create mode 100644 docs/specs/vmlaunchupdate.rst
create mode 100644 hw/misc/vmlaunchupdate.c
create mode 100644 include/hw/misc/vmlaunchupdate.h
create mode 100644 tests/data/igvm/README
create mode 100644 tests/data/igvm/hello.igvm
create mode 100644 tests/data/igvm/qemuinit.igvm
create mode 100755 tests/functional/aarch64/test_vm_launch_update_aarch.py
create mode 100755 tests/functional/x86_64/test_vm_launch_update.py
create mode 100644 tests/qtest/launchupdate-test.c
[PATCH v1 0/8] Introducing guest driven VM launch update mechanism (BYOF interface)
Posted by Ani Sinha 1 month ago
This is the resurrection of the work that was previously discussed here:
https://lists.endsoftwarepatents.org/archive/html/qemu-devel/2025-03/msg05872.html

This relates to the 'bring your own firmware' work that we are driving at Red Hat,
now with IGVM support.

The patchset includes a spec doc that has more details.

This patchset implements the hypervisor interface using fw-cfg. Using this interface, the guest
can pass its own IGVM file to the hypervisor. Upon reset, the hypervisor re-initializes the guest
using the IGVM file the guest provided.  This is useful in order to have deterministic and trustworthy
launch measurements, mostly for the cloud confidential guest deployments.

This patchset has added functional and unit tests that exercize the hypervisor interface. It has been
tested for both confidential guests and non-confidential guests. Gerd has also independently tested
the patchset.

CC: Alex Graf <graf@amazon.com>
CC: Gerd Hoffman <kraxel@redhat.com>
CC: qemu-devel@nongnu.org

Ani Sinha (5):
  hw/misc/vmlaunchupdate: Introduce hypervisor fw-cfg interface support
  docs/spec: Add a specification document for vm-launch-update device
  tests/qtest: Add small igvm files for testing purpose
  Add functional and unit tests for the vm-launch-update device
  Update MAINTAINERS

Gerd Hoffmann (3):
  igvm: store IgvmCfg pointer in QIgvm
  igvm: track memory regions
  igvm: cleanup memory regions

 MAINTAINERS                                   |  12 +
 backends/igvm-cfg.c                           |   1 +
 backends/igvm.c                               |  91 +++--
 docs/specs/index.rst                          |   1 +
 docs/specs/vmlaunchupdate.rst                 | 147 ++++++++
 hw/misc/meson.build                           |   3 +
 hw/misc/trace-events                          |   5 +
 hw/misc/vmlaunchupdate.c                      | 236 +++++++++++++
 include/hw/misc/vmlaunchupdate.h              |  85 +++++
 include/system/igvm-internal.h                |   8 +-
 include/system/igvm.h                         |   3 +
 tests/data/igvm/README                        |  24 ++
 tests/data/igvm/hello.igvm                    | Bin 0 -> 153624 bytes
 tests/data/igvm/qemuinit.igvm                 | Bin 0 -> 256856 bytes
 tests/functional/aarch64/meson.build          |   1 +
 .../aarch64/test_vm_launch_update_aarch.py    |  33 ++
 tests/functional/x86_64/meson.build           |   1 +
 .../x86_64/test_vm_launch_update.py           |  48 +++
 tests/qtest/launchupdate-test.c               | 321 ++++++++++++++++++
 tests/qtest/meson.build                       |   2 +
 20 files changed, 989 insertions(+), 33 deletions(-)
 create mode 100644 docs/specs/vmlaunchupdate.rst
 create mode 100644 hw/misc/vmlaunchupdate.c
 create mode 100644 include/hw/misc/vmlaunchupdate.h
 create mode 100644 tests/data/igvm/README
 create mode 100644 tests/data/igvm/hello.igvm
 create mode 100644 tests/data/igvm/qemuinit.igvm
 create mode 100755 tests/functional/aarch64/test_vm_launch_update_aarch.py
 create mode 100755 tests/functional/x86_64/test_vm_launch_update.py
 create mode 100644 tests/qtest/launchupdate-test.c

-- 
2.42.0