Now that basic support for guest CPU PM is upstream, I started looking
for making it migrateable. Since a VM can be migrated between different
hosts, PM info needs to change each time with move the VM to a different
host.
This adds infrastructure - based on Load/Unload - to support exactly
that: QEMU generates AML (changing it on migration) and stores it in
reserved memory, OSPM loads _CST from there on demand.
This is a partially functional prototype.
What works:
loading _CST dynamically and reporting it to OSPM
What doesn't:
detecting host configuration and generating correct _CST package
notifying guest about the change to trigger _CST re-evaluation
disabling mwait/halt exists as appropriate
Michael S. Tsirkin (6):
acpi: aml: add aml_register()
acpi: generalize aml_package / aml_varpackage
acpi: aml_load/aml_unload
acpi: export acpi_checksum
acpi: init header without linking
acpi: aml generation for _CST
pc: HACK: acpi: tie in _CST object to Processor
include/hw/acpi/acpi.h | 2 +
include/hw/acpi/aml-build.h | 14 ++-
include/hw/acpi/cst.h | 8 ++
include/hw/i386/pc.h | 5 ++
hw/acpi/aml-build.c | 81 ++++++++++++++---
hw/acpi/core.c | 2 +-
hw/acpi/cpu.c | 5 ++
hw/acpi/cpu_hotplug.c | 11 +--
hw/acpi/cst.c | 173 ++++++++++++++++++++++++++++++++++++
hw/arm/virt-acpi-build.c | 2 +-
hw/i386/acpi-build.c | 10 ++-
hw/acpi/Makefile.objs | 2 +-
12 files changed, 290 insertions(+), 25 deletions(-)
create mode 100644 include/hw/acpi/cst.h
create mode 100644 hw/acpi/cst.c
--
MST