X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Farch%2Fx86%2Fkvm%2Ftrace.h;h=0917b51f5122014f8157e0ca2fccf9a83de3a3f3;hb=a6334775b763c187d84914e89a0b835a793ae0fd;hp=4416ae029db23c0c06de3a4ee94400aeb4ff30f3;hpb=b96f5364ba4d5a8b9e8159fe0b9e20d598a1c0f5;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h index 4416ae02..0917b51f 100644 --- a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h +++ b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h @@ -115,6 +115,37 @@ LTTNG_TRACEPOINT_EVENT_MAP(kvm_apic, kvm_x86_apic, /* * Tracepoint for kvm guest exit: */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) +LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit, + TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa), + TP_ARGS(exit_reason, vcpu, isa), + + TP_locvar( + u64 info1, info2; + u32 intr_info, error_code; + ), + + TP_code_pre( + kvm_x86_ops.get_exit_info(vcpu, &tp_locvar->info1, + &tp_locvar->info2, + &tp_locvar->intr_info, + &tp_locvar->error_code); + ), + + TP_FIELDS( + ctf_integer(unsigned int, exit_reason, exit_reason) + ctf_integer(unsigned long, guest_rip, kvm_rip_read(vcpu)) + ctf_integer(u32, isa, isa) + ctf_integer(u64, info1, tp_locvar->info1) + ctf_integer(u64, info2, tp_locvar->info2) + ctf_integer(u32, intr_info, tp_locvar->intr_info) + ctf_integer(u32, error_code, tp_locvar->error_code) + ctf_integer(unsigned int, vcpu_id, vcpu->vcpu_id) + ), + + TP_code_post() +) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit, TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa), TP_ARGS(exit_reason, vcpu, isa), @@ -124,13 +155,32 @@ LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit, ), TP_code_pre( -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) kvm_x86_ops.get_exit_info(vcpu, &tp_locvar->info1, &tp_locvar->info2); + ), + + TP_FIELDS( + ctf_integer(unsigned int, exit_reason, exit_reason) + ctf_integer(unsigned long, guest_rip, kvm_rip_read(vcpu)) + ctf_integer(u32, isa, isa) + ctf_integer(u64, info1, tp_locvar->info1) + ctf_integer(u64, info2, tp_locvar->info2) + ), + + TP_code_post() +) #else +LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit, + TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa), + TP_ARGS(exit_reason, vcpu, isa), + + TP_locvar( + u64 info1, info2; + ), + + TP_code_pre( kvm_x86_ops->get_exit_info(vcpu, &tp_locvar->info1, &tp_locvar->info2); -#endif ), TP_FIELDS( @@ -143,6 +193,7 @@ LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit, TP_code_post() ) +#endif /* * Tracepoint for kvm interrupt injection: