All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/9] Support QEMU cpu models in MSHV accelerator
@ 2026-04-15 17:00 Magnus Kulke
  2026-04-15 17:00 ` [PATCH v5 1/9] accel/mshv: use mshv_create_partition_v2 payload Magnus Kulke
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Magnus Kulke @ 2026-04-15 17:00 UTC (permalink / raw)
  To: qemu-devel
  Cc: Zhao Liu, Magnus Kulke, Wei Liu, Paolo Bonzini, Magnus Kulke,
	Wei Liu

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.

Changes since v4:

- Use hypervisor-provided values in CPUID[0xD,{1,2}].EBX to get
  proper XSAVE sizes via EBX mask:
- Drop masking of CET feature bits (workaround not required anymore)

Changes since v3:

- Rebased onto current master

Changes since v2:

- move disabling of la57 to arch specific code
- assert MSHV_NUM_CPU_FEATURES_BANKS == 2
- dropped QEMU_PACKED changes to hv headers (address in individal patch)

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: use hv-provided [0xD,1+2].EBX
  accel/mshv: disable la57 (5lvl paging)

 accel/mshv/mshv-all.c          |  78 ++++++++++-
 include/hw/hyperv/hvgdk_mini.h |   2 +
 include/hw/hyperv/hvhdk.h      | 195 +++++++++++++++++++++++++++
 include/system/mshv.h          |   3 +
 include/system/mshv_int.h      |   2 +
 target/i386/cpu.c              |   8 ++
 target/i386/mshv/mshv-cpu.c    | 239 +++++++++++++++++++++++++++------
 7 files changed, 477 insertions(+), 50 deletions(-)

-- 
2.34.1



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-04-16 12:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-15 17:00 [PATCH v5 0/9] Support QEMU cpu models in MSHV accelerator Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 1/9] accel/mshv: use mshv_create_partition_v2 payload Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 2/9] target/i386/mshv: fix cpuid propagation bug Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 3/9] target/i386/mshv: fix various cpuid traversal bugs Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 4/9] target/i386/mshv: change cpuid mask to UINT32_MAX Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 5/9] target/i386/mshv: set cpu model name on -cpu host Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 6/9] target/i386: query mshv accel for supported cpuids Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 7/9] target/i386/mshv: populate xsave area offsets Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 8/9] target/i386/mshv: use hv-provided [0xD,1+2].EBX Magnus Kulke
2026-04-16 12:07   ` Magnus Kulke
2026-04-15 17:00 ` [PATCH v5 9/9] accel/mshv: disable la57 (5lvl paging) Magnus Kulke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.