Hey all,
In the current MSHV accelerator code passing CPU features via the -cpu
flag doesn't work as intended yet. When using the MSHV hypervisor we
either silently discard the specified model/features and leave it up
to the hypervisor to provide a sensible set of features or if the user
selects -cpu host, the hypervisor might refuse to create a partition.
This changeset introduces a more comprehensive support for passing
desired guest cpu features to the hypervisor. It's also a prerequisite
for Live Migration support.
Drive-by fixes:
- adding packed attribute to inlined UAPI structs
Changes since v1:
- query hypervisor for supported processor features instead of the host OS
- disable la57 (5 level page tables)
best,
magnus
Magnus Kulke (9):
accel/mshv: use mshv_create_partition_v2 payload
target/i386/mshv: fix cpuid propagation bug
target/i386/mshv: fix various cpuid traversal bugs
target/i386/mshv: change cpuid mask to UINT32_MAX
target/i386/mshv: set cpu model name on -cpu host
target/i386: query mshv accel for supported cpuids
target/i386/mshv: populate xsave area offsets
target/i386/mshv: filter out CET bits in cpuid
accel/mshv: disable la57 (5lvl paging)
accel/mshv/mshv-all.c | 82 +++++++++++-
include/hw/hyperv/hvgdk_mini.h | 2 +
include/hw/hyperv/hvhdk.h | 195 ++++++++++++++++++++++++++++
include/system/mshv.h | 3 +
target/i386/cpu.c | 8 ++
target/i386/mshv/mshv-cpu.c | 227 +++++++++++++++++++++++++++------
6 files changed, 468 insertions(+), 49 deletions(-)
--
2.34.1