Commit b2d52255 authored by Sean Christopherson's avatar Sean Christopherson Committed by Paolo Bonzini

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: default avatarSean Christopherson <sean.j.christopherson@intel.com>
Message-Id: <20200923201349.16097-2-sean.j.christopherson@intel.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 138534a8
...@@ -15,18 +15,20 @@ ...@@ -15,18 +15,20 @@
* Tracepoint for guest mode entry. * Tracepoint for guest mode entry.
*/ */
TRACE_EVENT(kvm_entry, TRACE_EVENT(kvm_entry,
TP_PROTO(unsigned int vcpu_id), TP_PROTO(struct kvm_vcpu *vcpu),
TP_ARGS(vcpu_id), TP_ARGS(vcpu),
TP_STRUCT__entry( TP_STRUCT__entry(
__field( unsigned int, vcpu_id ) __field( unsigned int, vcpu_id )
__field( unsigned long, rip )
), ),
TP_fast_assign( 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)
); );
/* /*
......
...@@ -8563,7 +8563,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) ...@@ -8563,7 +8563,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
kvm_x86_ops.request_immediate_exit(vcpu); kvm_x86_ops.request_immediate_exit(vcpu);
} }
trace_kvm_entry(vcpu->vcpu_id); trace_kvm_entry(vcpu);
fpregs_assert_state_consistent(); fpregs_assert_state_consistent();
if (test_thread_flag(TIF_NEED_FPU_LOAD)) if (test_thread_flag(TIF_NEED_FPU_LOAD))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment