]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mshv: Add SMT_ENABLED_GUEST partition creation flag
authorAnatol Belski <anbelski@linux.microsoft.com>
Wed, 18 Feb 2026 14:48:02 +0000 (14:48 +0000)
committerWei Liu <wei.liu@kernel.org>
Wed, 18 Feb 2026 23:54:37 +0000 (23:54 +0000)
Add support for HV_PARTITION_CREATION_FLAG_SMT_ENABLED_GUEST
to allow userspace VMMs to enable SMT for guest partitions.

Expose this via new MSHV_PT_BIT_SMT_ENABLED_GUEST flag in the UAPI.

Without this flag, the hypervisor schedules guest VPs incorrectly,
causing SMT unusable.

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/hv/mshv_root_main.c
include/hyperv/hvhdk.h
include/uapi/linux/mshv.h

index e490f8e5a8a505997351a3687f4c971313ffad48..192467a25f66209a25347f9aeebec0f665f2d570 100644 (file)
@@ -1949,6 +1949,8 @@ static long mshv_ioctl_process_pt_flags(void __user *user_arg, u64 *pt_flags,
                *pt_flags |= HV_PARTITION_CREATION_FLAG_GPA_SUPER_PAGES_ENABLED;
        if (args.pt_flags & BIT(MSHV_PT_BIT_NESTED_VIRTUALIZATION))
                *pt_flags |= HV_PARTITION_CREATION_FLAG_NESTED_VIRTUALIZATION_CAPABLE;
+       if (args.pt_flags & BIT(MSHV_PT_BIT_SMT_ENABLED_GUEST))
+               *pt_flags |= HV_PARTITION_CREATION_FLAG_SMT_ENABLED_GUEST;
 
        isol_props->as_uint64 = 0;
 
index f139c7c5bb2dd1d938baf853a72c67feebfe3c74..245f3db53bf195480a9ce633b9fdfb666061beeb 100644 (file)
@@ -335,6 +335,7 @@ union hv_partition_isolation_properties {
 #define HV_PARTITION_ISOLATION_HOST_TYPE_RESERVED   0x2
 
 /* Note: Exo partition is enabled by default */
+#define HV_PARTITION_CREATION_FLAG_SMT_ENABLED_GUEST                   BIT(0)
 #define HV_PARTITION_CREATION_FLAG_NESTED_VIRTUALIZATION_CAPABLE       BIT(1)
 #define HV_PARTITION_CREATION_FLAG_GPA_SUPER_PAGES_ENABLED             BIT(4)
 #define HV_PARTITION_CREATION_FLAG_EXO_PARTITION                       BIT(8)
index 7ef5dd67a232677d8a6a0bfc316f5216820d81f4..e0645a34b55bcabf140e788a13ace6ce27ea02ec 100644 (file)
@@ -28,6 +28,7 @@ enum {
        MSHV_PT_BIT_GPA_SUPER_PAGES,
        MSHV_PT_BIT_CPU_AND_XSAVE_FEATURES,
        MSHV_PT_BIT_NESTED_VIRTUALIZATION,
+       MSHV_PT_BIT_SMT_ENABLED_GUEST,
        MSHV_PT_BIT_COUNT,
 };