diff options
author | Sean Christopherson <sean.j.christopherson@intel.com> | 2020-09-23 13:13:43 -0700 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-09-28 07:57:49 -0400 |
commit | b2d522552ca02de3b0f72104705fb2e62fcf1ce6 (patch) | |
tree | c6f687bd3a3d9ca63b11587319b109d413f21e97 /arch/x86 | |
parent | 138534a810aa6aa3a6f27ac36ac52c0c685859a1 (diff) | |
download | linux-stable-b2d522552ca02de3b0f72104705fb2e62fcf1ce6.tar.gz linux-stable-b2d522552ca02de3b0f72104705fb2e62fcf1ce6.tar.bz2 linux-stable-b2d522552ca02de3b0f72104705fb2e62fcf1ce6.zip |
KVM: x86: Add RIP to the kvm_entry, i.e. VM-Enter, tracepoint
Add RIP to the kvm_entry tracepoint to help debug if the kvm_exit
tracepoint is disabled or if VM-Enter fails, in which case the kvm_exit
tracepoint won't be hit.
Read RIP from within the tracepoint itself to avoid a potential VMREAD
and retpoline if the guest's RIP isn't available.
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200923201349.16097-2-sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kvm/trace.h | 10 | ||||
-rw-r--r-- | arch/x86/kvm/x86.c | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h index 11cb4c070f0c..7e8edc7a1f73 100644 --- a/arch/x86/kvm/trace.h +++ b/arch/x86/kvm/trace.h @@ -15,18 +15,20 @@ * Tracepoint for guest mode entry. */ TRACE_EVENT(kvm_entry, - TP_PROTO(unsigned int vcpu_id), - TP_ARGS(vcpu_id), + TP_PROTO(struct kvm_vcpu *vcpu), + TP_ARGS(vcpu), TP_STRUCT__entry( __field( unsigned int, vcpu_id ) + __field( unsigned long, rip ) ), TP_fast_assign( - __entry->vcpu_id = vcpu_id; + __entry->vcpu_id = vcpu->vcpu_id; + __entry->rip = kvm_rip_read(vcpu); ), - TP_printk("vcpu %u", __entry->vcpu_id) + TP_printk("vcpu %u, rip 0x%lx", __entry->vcpu_id, __entry->rip) ); /* diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 5f3e9ab34c80..b4c581c3c187 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -8563,7 +8563,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) kvm_x86_ops.request_immediate_exit(vcpu); } - trace_kvm_entry(vcpu->vcpu_id); + trace_kvm_entry(vcpu); fpregs_assert_state_consistent(); if (test_thread_flag(TIF_NEED_FPU_LOAD)) |