05fc711c3a
host_cpu_realizefn() sets CPUID_EXT_MONITOR without consulting host/KVM capabilities. This may cause problems: - If MWAIT/MONITOR is not available on the host, advertising this feature to the guest and executing MWAIT/MONITOR from the guest triggers #UD and the guest doesn't boot. This is because typically #UD takes priority over VM-Exit interception checks and KVM doesn't emulate MONITOR/MWAIT on #UD. - If KVM doesn't support KVM_X86_DISABLE_EXITS_MWAIT, MWAIT/MONITOR from the guest are intercepted by KVM, which is not what cpu-pm=on intends to do. In these cases, MWAIT/MONITOR should not be exposed to the guest. The logic in kvm_arch_get_supported_cpuid() to handle CPUID_EXT_MONITOR is correct and sufficient, and we can't set CPUID_EXT_MONITOR after x86_cpu_filter_features(). This was not an issue before commit |
||
---|---|---|
.. | ||
hyperv-proto.h | ||
hyperv-stub.c | ||
hyperv.c | ||
hyperv.h | ||
kvm_i386.h | ||
kvm-cpu.c | ||
kvm.c | ||
meson.build | ||
trace-events | ||
trace.h | ||
xen-compat.h | ||
xen-emu.c | ||
xen-emu.h |