linux/arch/x86/kvm
Sean Christopherson 0f4a718527 KVM: VMX: Give host userspace full control of MSR_IA32_PERF_CAPABILITIES
Do not clear manipulate MSR_IA32_PERF_CAPABILITIES in intel_pmu_refresh(),
i.e. give userspace full control over capability/read-only MSRs.  KVM is
not a babysitter, it is userspace's responsiblity to provide a valid and
coherent vCPU model.

Attempting to "help" the guest by forcing a consistent model creates edge
cases, and ironicially leads to inconsistent behavior.

Example #1:  KVM doesn't do intel_pmu_refresh() when userspace writes
the MSR.

Example #2: KVM doesn't clear the bits when the PMU is disabled, or when
there's no architectural PMU.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20220611005755.753273-3-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-06-20 11:49:20 -04:00
..
mmu KVM: x86/mmu: Shove refcounted page dependency into host_pfn_mapping_level() 2022-06-20 06:21:36 -04:00
svm KVM: x86: Move "apicv_active" into "struct kvm_lapic" 2022-06-20 06:21:24 -04:00
vmx KVM: VMX: Give host userspace full control of MSR_IA32_PERF_CAPABILITIES 2022-06-20 11:49:20 -04:00
cpuid.c KVM: x86: Introduce "struct kvm_caps" to track misc caps/settings 2022-06-08 05:21:16 -04:00
cpuid.h KVM: x86/cpuid: Refactor host/guest CPU model consistency check 2022-06-08 04:48:19 -04:00
debugfs.c KVM: x86: Introduce "struct kvm_caps" to track misc caps/settings 2022-06-08 05:21:16 -04:00
emulate.c KVM: x86: Bug the VM on an out-of-bounds data read 2022-06-10 10:01:34 -04:00
fpu.h KVM: x86: Move FPU register accessors into fpu.h 2021-06-17 13:09:24 -04:00
hyperv.c Bitmap patches for 5.19-rc1 2022-06-04 14:04:27 -07:00
hyperv.h KVM: x86: hyper-v: Avoid writing to TSC page without an active vCPU 2022-04-11 13:29:51 -04:00
i8254.c KVM: x86: PIT: Preserve state of speaker port data bit 2022-06-08 13:06:20 -04:00
i8254.h KVM: x86: PIT: Preserve state of speaker port data bit 2022-06-08 13:06:20 -04:00
i8259.c KVM: x86/i8259: Remove a dead store of irq in a conditional block 2022-04-02 05:41:19 -04:00
ioapic.c KVM: x86/ioapic: Remove unused "addr" and "length" of ioapic_read_indirect() 2022-02-10 13:47:13 -05:00
ioapic.h x86/kvm: remove unused ack_notifier callbacks 2021-11-18 07:05:57 -05:00
irq_comm.c KVM: x86/xen: Make kvm_xen_set_evtchn() reusable from other places 2022-04-02 05:41:14 -04:00
irq.c KVM: x86/xen: handle PV timers oneshot mode 2022-04-02 05:41:16 -04:00
irq.h x86/kvm: remove unused ack_notifier callbacks 2021-11-18 07:05:57 -05:00
Kconfig KVM: x86/mmu: Remove MMU auditing 2022-02-18 13:46:23 -05:00
kvm_cache_regs.h KVM: X86: Remove kvm_register_clear_available() 2021-12-08 04:25:03 -05:00
kvm_emulate.h KVM: x86: Bug the VM if the emulator accesses a non-existent GPR 2022-06-10 10:01:33 -04:00
kvm_onhyperv.c KVM: x86: Uninline and export hv_track_root_tdp() 2022-02-10 13:47:19 -05:00
kvm_onhyperv.h KVM: x86: Uninline and export hv_track_root_tdp() 2022-02-10 13:47:19 -05:00
lapic.c KVM: x86: Move "apicv_active" into "struct kvm_lapic" 2022-06-20 06:21:24 -04:00
lapic.h KVM: x86: Use lapic_in_kernel() to query in-kernel APIC in APICv helper 2022-06-20 06:21:25 -04:00
Makefile KVM: Add Makefile.kvm for common files, use it for x86 2021-12-09 12:56:02 -05:00
mmu.h KVM: x86/mmu: Use separate namespaces for guest PTEs and shadow PTEs 2022-06-20 06:21:28 -04:00
mtrr.c KVM: x86: Add helper to consolidate "raw" reserved GPA mask calculations 2021-02-04 09:27:30 -05:00
pmu.c KVM: x86/pmu: Accept 0 for absent PMU MSRs when host-initiated if !enable_pmu 2022-06-08 13:06:18 -04:00
pmu.h KVM: x86/pmu: Restrict advanced features based on module enable_pmu 2022-06-08 13:06:17 -04:00
reverse_cpuid.h KVM: SEV: Mask CPUID[0x8000001F].eax according to supported features 2021-04-26 05:27:15 -04:00
trace.h KVM: x86: Differentiate Soft vs. Hard IRQs vs. reinjected in tracepoint 2022-06-08 04:47:01 -04:00
tss.h
x86.c KVM: x86: Give host userspace full control of MSR_IA32_MISC_ENABLES 2022-06-20 11:49:03 -04:00
x86.h KVM: VMX: Enable Notify VM exit 2022-06-08 05:56:24 -04:00
xen.c KVM: x86/xen: Remove the redundantly included header file lapic.h 2022-04-13 13:37:18 -04:00
xen.h KVM: x86: do not set st->preempted when going back to user space 2022-06-08 04:21:06 -04:00