KVM: x86: Add macro wrapper for defining kvm_exit tracepoint
Macrofy the definition of kvm_exit so that the definition can be reused verbatim by kvm_nested_vmexit. No functional change intended. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Message-Id: <20200923201349.16097-6-sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
235ba74f00
commit
029e8c8ad6
@ -235,42 +235,45 @@ TRACE_EVENT(kvm_apic,
|
|||||||
(isa == KVM_ISA_VMX) ? \
|
(isa == KVM_ISA_VMX) ? \
|
||||||
__print_flags(exit_reason & ~0xffff, " ", VMX_EXIT_REASON_FLAGS) : ""
|
__print_flags(exit_reason & ~0xffff, " ", VMX_EXIT_REASON_FLAGS) : ""
|
||||||
|
|
||||||
|
#define TRACE_EVENT_KVM_EXIT(name) \
|
||||||
|
TRACE_EVENT(name, \
|
||||||
|
TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa), \
|
||||||
|
TP_ARGS(exit_reason, vcpu, isa), \
|
||||||
|
\
|
||||||
|
TP_STRUCT__entry( \
|
||||||
|
__field( unsigned int, exit_reason ) \
|
||||||
|
__field( unsigned long, guest_rip ) \
|
||||||
|
__field( u32, isa ) \
|
||||||
|
__field( u64, info1 ) \
|
||||||
|
__field( u64, info2 ) \
|
||||||
|
__field( u32, intr_info ) \
|
||||||
|
__field( u32, error_code ) \
|
||||||
|
__field( unsigned int, vcpu_id ) \
|
||||||
|
), \
|
||||||
|
\
|
||||||
|
TP_fast_assign( \
|
||||||
|
__entry->exit_reason = exit_reason; \
|
||||||
|
__entry->guest_rip = kvm_rip_read(vcpu); \
|
||||||
|
__entry->isa = isa; \
|
||||||
|
__entry->vcpu_id = vcpu->vcpu_id; \
|
||||||
|
kvm_x86_ops.get_exit_info(vcpu, &__entry->info1, \
|
||||||
|
&__entry->info2, \
|
||||||
|
&__entry->intr_info, \
|
||||||
|
&__entry->error_code); \
|
||||||
|
), \
|
||||||
|
\
|
||||||
|
TP_printk("vcpu %u reason %s%s%s rip 0x%lx info1 0x%016llx " \
|
||||||
|
"info2 0x%016llx intr_info 0x%08x error_code 0x%08x", \
|
||||||
|
__entry->vcpu_id, \
|
||||||
|
kvm_print_exit_reason(__entry->exit_reason, __entry->isa), \
|
||||||
|
__entry->guest_rip, __entry->info1, __entry->info2, \
|
||||||
|
__entry->intr_info, __entry->error_code) \
|
||||||
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tracepoint for kvm guest exit:
|
* Tracepoint for kvm guest exit:
|
||||||
*/
|
*/
|
||||||
TRACE_EVENT(kvm_exit,
|
TRACE_EVENT_KVM_EXIT(kvm_exit);
|
||||||
TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa),
|
|
||||||
TP_ARGS(exit_reason, vcpu, isa),
|
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
|
||||||
__field( unsigned int, exit_reason )
|
|
||||||
__field( unsigned long, guest_rip )
|
|
||||||
__field( u32, isa )
|
|
||||||
__field( u64, info1 )
|
|
||||||
__field( u64, info2 )
|
|
||||||
__field( u32, intr_info )
|
|
||||||
__field( u32, error_code )
|
|
||||||
__field( unsigned int, vcpu_id )
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_fast_assign(
|
|
||||||
__entry->exit_reason = exit_reason;
|
|
||||||
__entry->guest_rip = kvm_rip_read(vcpu);
|
|
||||||
__entry->isa = isa;
|
|
||||||
__entry->vcpu_id = vcpu->vcpu_id;
|
|
||||||
kvm_x86_ops.get_exit_info(vcpu, &__entry->info1,
|
|
||||||
&__entry->info2,
|
|
||||||
&__entry->intr_info,
|
|
||||||
&__entry->error_code);
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_printk("vcpu %u reason %s%s%s rip 0x%lx info1 0x%016llx "
|
|
||||||
"info2 0x%016llx intr_info 0x%08x error_code 0x%08x",
|
|
||||||
__entry->vcpu_id,
|
|
||||||
kvm_print_exit_reason(__entry->exit_reason, __entry->isa),
|
|
||||||
__entry->guest_rip, __entry->info1, __entry->info2,
|
|
||||||
__entry->intr_info, __entry->error_code)
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tracepoint for kvm interrupt injection:
|
* Tracepoint for kvm interrupt injection:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user