whpx: i386: disable TbFlushHypercalls for emulated LAPIC
AccessHypercallRegs was present twice so clean that up. Remove TbFlushHypercalls (and its extended Gva range sub-feature) from the user-mode LAPIC case as it behaves oddly there. Signed-off-by: Mohamed Mediouni <mohamed@unpredictable.fr> Link: https://lore.kernel.org/r/20260422214225.2242-5-mohamed@unpredictable.fr Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Mohamed Mediouni committed
Apr 22, 2026 at 23:41 UTC
5c884c18745d18242a0365a8da3059d469b5140f
1 file changed
+6
-3
target/i386/whpx/whpx-all.c
+6
-3
@@ -2577,10 +2577,7 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
2577
synthetic_features.Bank0.AccessPartitionReferenceTsc = 1;
2578
synthetic_features.Bank0.AccessHypercallRegs = 1;
2579
synthetic_features.Bank0.AccessFrequencyRegs = 1;
2580
- synthetic_features.Bank0.EnableExtendedGvaRangesForFlushVirtualAddressList = 1;
2580
synthetic_features.Bank0.AccessVpIndex = 1;
2582
- synthetic_features.Bank0.AccessHypercallRegs = 1;
2583
- synthetic_features.Bank0.TbFlushHypercalls = 1;
2581
2582
if (whpx_irqchip_in_kernel()) {
2583
synthetic_features.Bank0.AccessSynicRegs = 1;
@@ -2588,6 +2585,12 @@ int whpx_accel_init(AccelState *as, MachineState *ms)
2585
synthetic_features.Bank0.AccessIntrCtrlRegs = 1;
2586
synthetic_features.Bank0.SyntheticClusterIpi = 1;
2587
synthetic_features.Bank0.DirectSyntheticTimers = 1;
2588
+ /*
2589
+ * These technically work without the Hyper-V LAPIC
2590
+ * but behave oddly for multi-core VMs.
2591
+ */
2592
+ synthetic_features.Bank0.TbFlushHypercalls = 1;
2593
+ synthetic_features.Bank0.EnableExtendedGvaRangesForFlushVirtualAddressList = 1;
2594
}
2595
2596
if (is_modern_os && whpx->hyperv_enlightenments_allowed) {