From 5619b37e457840daca9fb16b8b1570d82dad57c8 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Tue, 14 Dec 2021 15:00:18 -0500 Subject: [PATCH] fix: KVM: x86: Get exit_reason as part of kvm_x86_ops.get_exit_info (v5.16) See upstream commit : commit 0a62a0319abb92c89a4f91c2dbfcaee4e47f37ca Author: David Edmondson Date: Mon Sep 20 11:37:35 2021 +0100 KVM: x86: Get exit_reason as part of kvm_x86_ops.get_exit_info Extend the get_exit_info static call to provide the reason for the VM exit. Modify relevant trace points to use this rather than extracting the reason in the caller. Change-Id: I28903e658eb7cbfc6666e35ba4cffba5e49d1445 Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- .../events/arch/x86/kvm/trace.h | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/include/instrumentation/events/arch/x86/kvm/trace.h b/include/instrumentation/events/arch/x86/kvm/trace.h index af6e5794..42e5b94d 100644 --- a/include/instrumentation/events/arch/x86/kvm/trace.h +++ b/include/instrumentation/events/arch/x86/kvm/trace.h @@ -115,7 +115,39 @@ LTTNG_TRACEPOINT_EVENT_MAP(kvm_apic, kvm_x86_apic, /* * Tracepoint for kvm guest exit: */ -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,16,0)) +LTTNG_TRACEPOINT_EVENT_CODE_MAP(kvm_exit, kvm_x86_exit, + TP_PROTO(struct kvm_vcpu *vcpu, u32 isa), + TP_ARGS(vcpu, isa), + + TP_locvar( + u32 reason; + u64 info1, info2; + u32 intr_info, error_code; + ), + + TP_code_pre( + kvm_x86_ops.get_exit_info(vcpu, &tp_locvar->reason, + &tp_locvar->info1, + &tp_locvar->info2, + &tp_locvar->intr_info, + &tp_locvar->error_code); + ), + + TP_FIELDS( + ctf_integer(u32, exit_reason, tp_locvar->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 (LTTNG_LINUX_VERSION_CODE >= LTTNG_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), -- 2.34.1