[RFC PATCH v4 2/2] debug: add tracepoint for flush_rap_on_vmrun
From: Amit Shah
Date: Wed Apr 02 2025 - 04:29:44 EST
From: Amit Shah <amit.shah@xxxxxxx>
---
arch/x86/kvm/svm/svm.c | 4 +++-
arch/x86/kvm/trace.h | 16 ++++++++++++++++
arch/x86/kvm/x86.c | 1 +
3 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index b5de6341080b..c47d4dfcc1d4 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -3607,8 +3607,10 @@ static int svm_handle_exit(struct kvm_vcpu *vcpu, fastpath_t exit_fastpath)
trace_kvm_nested_vmexit(vcpu, KVM_ISA_SVM);
- if (vmcb_is_extended_rap(svm->vmcb01.ptr))
+ if (vmcb_is_extended_rap(svm->vmcb01.ptr)) {
vmcb_flush_guest_rap(svm->vmcb01.ptr);
+ trace_kvm_svm_eraps_flush_rap(svm->vmcb01.ptr);
+ }
vmexit = nested_svm_exit_special(svm);
diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
index ccda95e53f62..059dfc744a22 100644
--- a/arch/x86/kvm/trace.h
+++ b/arch/x86/kvm/trace.h
@@ -346,6 +346,22 @@ TRACE_EVENT(name, \
*/
TRACE_EVENT_KVM_EXIT(kvm_exit);
+TRACE_EVENT(kvm_svm_eraps_flush_rap, \
+ TP_PROTO(struct vmcb *vmcb), \
+ TP_ARGS(vmcb), \
+ \
+ TP_STRUCT__entry( \
+ __field( struct vmcb *, vmcb ) \
+ ), \
+ \
+ TP_fast_assign( \
+ __entry->vmcb = vmcb; \
+ ), \
+ \
+ TP_printk("vmcb: 0x%p", \
+ __entry->vmcb) \
+)
+
/*
* Tracepoint for kvm interrupt injection:
*/
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c841817a914a..414a0e6c9c4b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -14024,6 +14024,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_vmgexit_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_vmgexit_msr_protocol_enter);
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_vmgexit_msr_protocol_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_rmp_fault);
+EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_svm_eraps_flush_rap);
static int __init kvm_x86_init(void)
{
--
2.49.0