[PATCH v2 0/9] KVM_SET_GUEST_DEBUG tests and fixes, DR accessors cleanups

From: Paolo Bonzini
Date: Thu May 07 2020 - 07:51:19 EST


This new version of the patches improves the AMD bugfix where
KVM_EXIT_DEBUG clobbers the guest DR6 and includes stale causes.
The improved fix makes it possible to drop kvm_set_dr6 and
kvm_update_dr6 altogether.

v1->v2: - merge v1 patch 6 with get_dr6 part of v1 patch 7, cover nested SVM
- new patch "KVM: nSVM: trap #DB and #BP to userspace if guest debugging is on"
- rewritten patch 8 to get rid of set_dr6 completely

Paolo Bonzini (5):
KVM: x86: fix DR6 delivery for various cases of #DB injection
KVM: nSVM: trap #DB and #BP to userspace if guest debugging is on
KVM: SVM: keep DR6 synchronized with vcpu->arch.dr6
KVM: x86, SVM: isolate vcpu->arch.dr6 from vmcb->save.dr6
KVM: VMX: pass correct DR6 for GD userspace exit

Peter Xu (4):
KVM: X86: Declare KVM_CAP_SET_GUEST_DEBUG properly
KVM: X86: Set RTM for DB_VECTOR too for KVM_EXIT_DEBUG
KVM: X86: Fix single-step with KVM_SET_GUEST_DEBUG
KVM: selftests: Add KVM_SET_GUEST_DEBUG test

arch/powerpc/kvm/powerpc.c | 1 +
arch/s390/kvm/kvm-s390.c | 1 +
arch/x86/include/asm/kvm_host.h | 3 +-
arch/x86/kvm/svm/nested.c | 39 +++-
arch/x86/kvm/svm/svm.c | 36 ++--
arch/x86/kvm/vmx/vmx.c | 23 +-
arch/x86/kvm/x86.c | 27 +--
tools/testing/selftests/kvm/Makefile | 1 +
.../testing/selftests/kvm/include/kvm_util.h | 2 +
tools/testing/selftests/kvm/lib/kvm_util.c | 9 +
.../testing/selftests/kvm/x86_64/debug_regs.c | 202 ++++++++++++++++++
11 files changed, 281 insertions(+), 63 deletions(-)
create mode 100644 tools/testing/selftests/kvm/x86_64/debug_regs.c

--
2.18.2