@samitouri / QOSamiQemu / commits / f3364a1b04

whpx: arm: enable more enlightenments

Unconditionally enable some more enlightenments for whpx. In particular, linux uses AccessVpRegs without checking availability and panics if it's not there, so it's important to expose it. We also had a duplicate line where we set AccessHypercallRegs = 1 twice; remove the duplicate. Microsoft’s VMM exposes SyncContext on arm64 and FastHypercallOutput regardless of architecture unconditionally, so add those two to match that configuration. Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr> Message-id: 20260314221529.47841-4-mohamed@unpredictable.fr Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Mohamed Mediouni committed Mar 23, 2026 at 09:51 UTC f3364a1b04ae6018ee2216446a2b0683ab21e07c
1 file changed +4 -2
target/arm/whpx/whpx-all.c
+4 -2
@@ -832,6 +832,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
832 UINT32 whpx_cap_size;
833 WHV_PARTITION_PROPERTY prop;
834 WHV_CAPABILITY_FEATURES features;
835 + WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS synthetic_features;
836 MachineClass *mc = MACHINE_GET_CLASS(ms);
837 int pa_range = 0;
838
@@ -942,7 +943,6 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
943 }
944
945 /* Enable synthetic processor features */
945 - WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS synthetic_features;
946 memset(&synthetic_features, 0, sizeof(WHV_SYNTHETIC_PROCESSOR_FEATURES_BANKS));
947 synthetic_features.BanksCount = 1;
948
@@ -953,13 +953,15 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
953 synthetic_features.Bank0.AccessPartitionReferenceTsc = 1;
954 synthetic_features.Bank0.AccessHypercallRegs = 1;
955 synthetic_features.Bank0.AccessVpIndex = 1;
956 - synthetic_features.Bank0.AccessHypercallRegs = 1;
956 synthetic_features.Bank0.TbFlushHypercalls = 1;
957 synthetic_features.Bank0.AccessSynicRegs = 1;
958 synthetic_features.Bank0.AccessSyntheticTimerRegs = 1;
959 synthetic_features.Bank0.AccessIntrCtrlRegs = 1;
960 synthetic_features.Bank0.SyntheticClusterIpi = 1;
961 synthetic_features.Bank0.DirectSyntheticTimers = 1;
962 + synthetic_features.Bank0.FastHypercallOutput = 1;
963 + synthetic_features.Bank0.AccessVpRegs = 1;
964 + synthetic_features.Bank0.SyncContext = 1;
965
966 /*
967 * On ARM64, have enlightenments off by default