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