linux/arch
Vitaly Kuznetsov 31de3d2500 x86/kvm/hyper-v: move VMX controls sanitization out of nested_enable_evmcs()
With fine grained VMX feature enablement QEMU>=4.2 tries to do KVM_SET_MSRS
with default (matching CPU model) values and in case eVMCS is also enabled,
fails.

It would be possible to drop VMX feature filtering completely and make
this a guest's responsibility: if it decides to use eVMCS it should know
which fields are available and which are not. Hyper-V mostly complies to
this, however, there are some problematic controls:
SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES
VM_{ENTRY,EXIT}_LOAD_IA32_PERF_GLOBAL_CTRL

which Hyper-V enables. As there are no corresponding fields in eVMCS, we
can't handle this properly in KVM. This is a Hyper-V issue.

Move VMX controls sanitization from nested_enable_evmcs() to vmx_get_msr(),
and do the bare minimum (only clear controls which are known to cause issues).
This allows userspace to keep setting controls it wants and at the same
time hides them from the guest.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-02-05 15:55:06 +01:00
..
alpha threads-v5.6 2020-01-29 19:38:34 -08:00
arc TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
arm ARM: Cleanups and corner case fixes 2020-01-31 09:30:41 -08:00
arm64 ARM: Cleanups and corner case fixes 2020-01-31 09:30:41 -08:00
c6x Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 10:07:09 -08:00
csky TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
h8300 Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 10:07:09 -08:00
hexagon Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 10:07:09 -08:00
ia64 threads-v5.6 2020-01-29 19:38:34 -08:00
m68k threads-v5.6 2020-01-29 19:38:34 -08:00
microblaze threads-v5.6 2020-01-29 19:38:34 -08:00
mips KVM: MIPS: Fold comparecount_func() into comparecount_wakeup() 2020-02-05 15:29:55 +01:00
nds32 TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
nios2 TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
openrisc TTY/Serial driver updates for 5.6-rc1 2020-01-29 10:13:27 -08:00
parisc threads-v5.6 2020-01-29 19:38:34 -08:00
powerpc ARM: Cleanups and corner case fixes 2020-01-31 09:30:41 -08:00
riscv It has been a relatively quiet cycle for documentation, but there's still a 2020-01-29 15:27:31 -08:00
s390 ARM: Cleanups and corner case fixes 2020-01-31 09:30:41 -08:00
sh threads-v5.6 2020-01-29 19:38:34 -08:00
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2020-01-30 07:36:43 -08:00
um MPX requires recompiling applications, which requires compiler support. 2020-01-30 16:11:50 -08:00
unicore32 MPX requires recompiling applications, which requires compiler support. 2020-01-30 16:11:50 -08:00
x86 x86/kvm/hyper-v: move VMX controls sanitization out of nested_enable_evmcs() 2020-02-05 15:55:06 +01:00
xtensa threads-v5.6 2020-01-29 19:38:34 -08:00
.gitignore
Kconfig arch/Kconfig: fix indentation 2019-12-04 19:44:12 -08:00