lkml.org 
[lkml]   [2009]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6/9] KVM: SVM: Add tracepoint for #vmexit because intr pending
    Date
    This patch adds a special tracepoint for the event that a
    nested #vmexit is injected because kvm wants to inject an
    interrupt into the guest.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/kvm/svm.c | 2 +-
    arch/x86/kvm/trace.h | 18 ++++++++++++++++++
    arch/x86/kvm/x86.c | 1 +
    3 files changed, 20 insertions(+), 1 deletions(-)

    diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
    index 369eeb8..78a391c 100644
    --- a/arch/x86/kvm/svm.c
    +++ b/arch/x86/kvm/svm.c
    @@ -1390,7 +1390,7 @@ static inline int nested_svm_intr(struct vcpu_svm *svm)
    * the #vmexit here.
    */
    svm->nested.exit_required = true;
    - nsvm_printk("VMexit -> INTR\n");
    + trace_kvm_nested_intr_vmexit(svm->vmcb->save.rip);
    return 1;
    }

    diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
    index 4d6bb5e..3cc8f44 100644
    --- a/arch/x86/kvm/trace.h
    +++ b/arch/x86/kvm/trace.h
    @@ -451,6 +451,24 @@ TRACE_EVENT(kvm_nested_vmexit_inject,
    __entry->exit_info1, __entry->exit_info2,
    __entry->exit_int_info, __entry->exit_int_info_err)
    );
    +
    +/*
    + * Tracepoint for nested #vmexit because of interrupt pending
    + */
    +TRACE_EVENT(kvm_nested_intr_vmexit,
    + TP_PROTO(__u64 rip),
    + TP_ARGS(rip),
    +
    + TP_STRUCT__entry(
    + __field( __u64, rip )
    + ),
    +
    + TP_fast_assign(
    + __entry->rip = rip
    + ),
    +
    + TP_printk("rip: 0x%016llx\n", __entry->rip)
    +);
    #endif /* _TRACE_KVM_H */

    /* This part must be outside protection */
    diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
    index 4f90d45..877f910 100644
    --- a/arch/x86/kvm/x86.c
    +++ b/arch/x86/kvm/x86.c
    @@ -4983,3 +4983,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_cr);
    EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_vmrun);
    EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_vmexit);
    EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_vmexit_inject);
    +EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_nested_intr_vmexit);
    --
    1.6.4.3



    \
     
     \ /
      Last update: 2009-10-09 16:17    [W:0.028 / U:61.592 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site