linux/arch/x86/kvm
Liran Alon 7396d337cf KVM: x86: Return to userspace with internal error on unexpected exit reason
Receiving an unexpected exit reason from hardware should be considered
as a severe bug in KVM. Therefore, instead of just injecting #UD to
guest and ignore it, exit to userspace on internal error so that
it could handle it properly (probably by terminating guest).

In addition, prefer to use vcpu_unimpl() instead of WARN_ONCE()
as handling unexpected exit reason should be a rare unexpected
event (that was expected to never happen) and we prefer to print
a message on it every time it occurs to guest.

Furthermore, dump VMCS/VMCB to dmesg to assist diagnosing such cases.

Reviewed-by: Mihai Carabas <mihai.carabas@oracle.com>
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Reviewed-by: Joao Martins <joao.m.martins@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-09-11 15:42:45 +02:00
..
vmx KVM: x86: Return to userspace with internal error on unexpected exit reason 2019-09-11 15:42:45 +02:00
cpuid.c KVM: x86: use Intel speculation bugs and features as derived in generic x86 code 2019-08-22 10:09:11 +02:00
cpuid.h x86/cpufeatures: Combine word 11 and 12 into a new scattered features word 2019-06-20 12:38:44 +02:00
debugfs.c KVM: no need to check return value of debugfs_create functions 2019-08-05 12:55:49 +02:00
emulate.c x86: KVM: add xsetbv to the emulator 2019-08-22 10:09:20 +02:00
hyperv.c x86: kvm: avoid -Wsometimes-uninitized warning 2019-07-15 12:50:30 +02:00
hyperv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
i8254.c kvm: x86: Add memcg accounting to KVM allocations 2019-02-20 22:48:30 +01:00
i8254.h
i8259.c kvm: x86: Add memcg accounting to KVM allocations 2019-02-20 22:48:30 +01:00
ioapic.c kvm: x86: ioapic and apic debug macros cleanup 2019-07-15 20:39:01 +02:00
ioapic.h
irq_comm.c KVM/arm updates for 5.3 2019-07-11 15:14:16 +02:00
irq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 320 2019-06-05 17:37:05 +02:00
irq.h KVM/arm updates for 5.3 2019-07-11 15:14:16 +02:00
Kconfig kvm: x86: add host poll control msrs 2019-06-18 11:43:46 +02:00
kvm_cache_regs.h KVM: x86: use direct accessors for RIP and RSP 2019-04-30 22:07:26 +02:00
lapic.c kvm: x86: skip populating logical dest map if apic is not sw enabled 2019-08-14 16:28:33 +02:00
lapic.h KVM: LAPIC: Inject timer interrupt via posted interrupt 2019-07-20 09:00:40 +02:00
Makefile KVM: x86: fix TRACE_INCLUDE_PATH and remove -I. header search paths 2019-01-25 19:12:37 +01:00
mmu_audit.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
mmu.c KVM: x86/mmu: Consolidate "is MMIO SPTE" code 2019-08-22 10:09:25 +02:00
mmu.h KVM: x86/mmu: Add explicit access mask for MMIO SPTEs 2019-08-22 10:09:24 +02:00
mmutrace.h KVM: x86: add tracepoints around __direct_map and FNAME(fetch) 2019-07-05 13:48:48 +02:00
mtrr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
page_track.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
paging_tmpl.h KVM/arm updates for 5.3 2019-07-11 15:14:16 +02:00
pmu_amd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
pmu.c KVM: x86: Add fixed counters to PMU filter 2019-07-20 09:00:48 +02:00
pmu.h KVM: x86: PMU Event Filter 2019-07-11 15:08:28 +02:00
svm.c KVM: x86: Return to userspace with internal error on unexpected exit reason 2019-09-11 15:42:45 +02:00
trace.h KVM: X86: Tune PLE Window tracepoint 2019-09-10 19:13:21 +02:00
tss.h
x86.c KVM: x86: Add kvm_emulate_{rd,wr}msr() to consolidate VXM/SVM code 2019-09-10 19:18:29 +02:00
x86.h KVM: x86: Rename access permissions cache member in struct kvm_vcpu_arch 2019-08-22 10:09:23 +02:00