On Thu, Feb 12, 2026 at 01:32:22PM +0000, Anirudh Rayabharam wrote: > On Wed, Feb 11, 2026 at 04:54:03PM +0100, Magnus Kulke wrote: > > When using the extended request format we can instruct the hypervisor to > > provision enough space for requested XSAVE features. This is required > > for supporting QEMU models provided via the -cpu flag properly. > > > > Signed-off-by: Magnus Kulke <[email protected]> > > --- > > accel/mshv/mshv-all.c | 35 +++++-- > > include/hw/hyperv/hvgdk_mini.h | 2 + > > include/hw/hyperv/hvhdk.h | 185 +++++++++++++++++++++++++++++++++ > > 3 files changed, 214 insertions(+), 8 deletions(-) > > > > diff --git a/accel/mshv/mshv-all.c b/accel/mshv/mshv-all.c > > index bed0fa298e..8446f7128a 100644 > > --- a/accel/mshv/mshv-all.c > > +++ b/accel/mshv/mshv-all.c > > @@ -112,19 +112,38 @@ static int resume_vm(int vm_fd) > > > > static int create_partition(int mshv_fd, int *vm_fd) > > { > > - int ret; > > - struct mshv_create_partition args = {0}; > > + int ret, i; > > + uint64_t pt_flags; > > + union hv_partition_processor_xsave_features disabled_xsave_features; > > + union hv_partition_processor_features disabled_processor_features; > > + struct mshv_create_partition_v2 args = {0}; > > > > /* Initialize pt_flags with the desired features */ > > - uint64_t pt_flags = (1ULL << MSHV_PT_BIT_LAPIC) | > > - (1ULL << MSHV_PT_BIT_X2APIC) | > > - (1ULL << MSHV_PT_BIT_GPA_SUPER_PAGES); > > + pt_flags = (1ULL << MSHV_PT_BIT_LAPIC) | > > + (1ULL << MSHV_PT_BIT_X2APIC) | > > + (1ULL << MSHV_PT_BIT_GPA_SUPER_PAGES) | > > + (1ULL << MSHV_PT_BIT_CPU_AND_XSAVE_FEATURES); > > > > - /* Set default isolation type */ > > - uint64_t pt_isolation = MSHV_PT_ISOLATION_NONE; > > + /* enable all */ > > + disabled_xsave_features.as_uint64 = 0; > > > > + /* Enable all proc features by default */ > > Instead of enabling all features by default, we could query which > features are supported by the hypervisor on this host and enable only > those. > > To query supported features get the HvPartitionPropertyProcessorFeatures > property via HvCallGetPartitionProperty (with HV_PARTITION_ID_SELF). > > I think this would be more robust. This is what Cloud Hypervisor (well, > technically, the mshv crate) does. >
While I think querying the hypervisor is the correct action, are we sure this gives all the supported features on the host? Is there a case that the Linux root partition has a reduced set of properties? Wei
