[PATCH v3 0/3] kvm: x86: Convey the exit reason, etc. to user-space on emulation failure

From: David Edmondson
Date: Thu Jul 29 2021 - 09:46:21 EST


To help when debugging failures in the field, if instruction emulation
fails, report the VM exit reason to userspace in order that it can be
recorded.

Sean: hopefully this is something like what you intended. If not,
please clarify and I will have another go. The lack of an ABI for the
debug data does feel messy.

The SGX changes here are compiled but untested.

v3:
- Convey any debug data un-flagged after the ABI specified data in
struct emulation_failure (Sean)
- Obey the ABI protocol in sgx_handle_emulation_failure() (Sean)

v2:
- Improve patch comments (dmatlock)
- Intel should provide the full exit reason (dmatlock)
- Pass a boolean rather than flags (dmatlock)
- Use the helper in kvm_task_switch() and kvm_handle_memory_failure()
(dmatlock)
- Describe the exit_reason field of the emulation_failure structure
(dmatlock)

David Edmondson (3):
KVM: x86: kvm_x86_ops.get_exit_info should include the exit reason
KVM: x86: On emulation failure, convey the exit reason, etc. to
userspace
KVM: x86: SGX must obey the KVM_INTERNAL_ERROR_EMULATION protocol

arch/x86/include/asm/kvm_host.h | 12 ++++++--
arch/x86/kvm/svm/svm.c | 8 +++--
arch/x86/kvm/trace.h | 11 +++----
arch/x86/kvm/vmx/nested.c | 2 +-
arch/x86/kvm/vmx/sgx.c | 8 ++---
arch/x86/kvm/vmx/vmx.c | 11 ++++---
arch/x86/kvm/x86.c | 53 ++++++++++++++++++++++++++-------
include/uapi/linux/kvm.h | 7 +++++
8 files changed, 79 insertions(+), 33 deletions(-)

--
2.30.2