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, in which we have to roundtrip CPU State
explicitly

Known issues:

We will probably have to iterate a bit more on this, since recently
support for CET_U/CET_S xstate bits has been introduced in QEMU, which
doesn't harmonize with our current approach of configuring the
hypervisor with static responses to cpuid queries.

Drive-by fixes:

- tiny fix in MAINTAINERS
- adding packed attribute to inlined UAPI structs

best,

magnus

Magnus Kulke (10):
  MAINTAINERS: fix magnuskulke email-address
  include/hw/hyperv: add QEMU_PACKED to uapi structs
  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

 MAINTAINERS                    |   4 +-
 accel/mshv/mshv-all.c          |  35 ++++--
 include/hw/hyperv/hvgdk_mini.h |  39 ++++--
 include/hw/hyperv/hvhdk.h      | 199 ++++++++++++++++++++++++++++-
 include/system/mshv.h          |   3 +
 target/i386/cpu.c              |   8 ++
 target/i386/mshv/mshv-cpu.c    | 221 ++++++++++++++++++++++++++-------
 7 files changed, 438 insertions(+), 71 deletions(-)

-- 
2.34.1


Reply via email to