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

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 v5:

- Remove leftover masking of CET shadowstack bit

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    | 238 +++++++++++++++++++++++++++------
 7 files changed, 476 insertions(+), 50 deletions(-)

-- 
2.34.1



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

end of thread, other threads:[~2026-05-06 11:25 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-16 12:11 [PATCH v6 0/9] Support QEMU cpu models in MSHV accelerator Magnus Kulke
2026-04-16 12:11 ` [PATCH v6 1/9] accel/mshv: use mshv_create_partition_v2 payload Magnus Kulke
2026-04-30  8:43   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 2/9] target/i386/mshv: fix cpuid propagation bug Magnus Kulke
2026-04-30  9:05   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 3/9] target/i386/mshv: fix various cpuid traversal bugs Magnus Kulke
2026-04-30  9:35   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 4/9] target/i386/mshv: change cpuid mask to UINT32_MAX Magnus Kulke
2026-04-30 11:27   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 5/9] target/i386/mshv: set cpu model name on -cpu host Magnus Kulke
2026-04-30 11:47   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 6/9] target/i386: query mshv accel for supported cpuids Magnus Kulke
2026-05-06 10:41   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 7/9] target/i386/mshv: populate xsave area offsets Magnus Kulke
2026-05-06 11:02   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 8/9] target/i386/mshv: use hv-provided [0xD,1+2].EBX Magnus Kulke
2026-05-06 11:14   ` Doru Blânzeanu
2026-04-16 12:11 ` [PATCH v6 9/9] accel/mshv: disable la57 (5lvl paging) Magnus Kulke
2026-05-06 11:24   ` Doru Blânzeanu

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.