Add host irq information in trace event, so we can better understand
which irq is in posted mode.

Signed-off-by: Feng Wu <feng...@intel.com>
Reviewed-by: Radim Krcmar <rkrc...@redhat.com>
---
 arch/x86/kvm/trace.h | 12 ++++++++----
 arch/x86/kvm/vmx.c   |  2 +-
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
index ad9f6a2..2f1ea2f 100644
--- a/arch/x86/kvm/trace.h
+++ b/arch/x86/kvm/trace.h
@@ -996,11 +996,13 @@ TRACE_EVENT(kvm_enter_smm,
  * Tracepoint for VT-d posted-interrupts.
  */
 TRACE_EVENT(kvm_pi_irte_update,
-       TP_PROTO(unsigned int vcpu_id, unsigned int gsi,
-                unsigned int gvec, u64 pi_desc_addr, bool set),
-       TP_ARGS(vcpu_id, gsi, gvec, pi_desc_addr, set),
+       TP_PROTO(unsigned int host_irq, unsigned int vcpu_id,
+                unsigned int gsi, unsigned int gvec,
+                u64 pi_desc_addr, bool set),
+       TP_ARGS(host_irq, vcpu_id, gsi, gvec, pi_desc_addr, set),
 
        TP_STRUCT__entry(
+               __field(        unsigned int,   host_irq        )
                __field(        unsigned int,   vcpu_id         )
                __field(        unsigned int,   gsi             )
                __field(        unsigned int,   gvec            )
@@ -1009,6 +1011,7 @@ TRACE_EVENT(kvm_pi_irte_update,
        ),
 
        TP_fast_assign(
+               __entry->host_irq       = host_irq;
                __entry->vcpu_id        = vcpu_id;
                __entry->gsi            = gsi;
                __entry->gvec           = gvec;
@@ -1016,9 +1019,10 @@ TRACE_EVENT(kvm_pi_irte_update,
                __entry->set            = set;
        ),
 
-       TP_printk("VT-d PI is %s for this irq, vcpu %u, gsi: 0x%x, "
+       TP_printk("VT-d PI is %s for irq %u, vcpu %u, gsi: 0x%x, "
                  "gvec: 0x%x, pi_desc_addr: 0x%llx",
                  __entry->set ? "enabled and being updated" : "disabled",
+                 __entry->host_irq,
                  __entry->vcpu_id,
                  __entry->gsi,
                  __entry->gvec,
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index a4b4aa4..164eb9e 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -10783,7 +10783,7 @@ static int vmx_update_pi_irte(struct kvm *kvm, unsigned 
int host_irq,
                vcpu_info.pi_desc_addr = __pa(vcpu_to_pi_desc(vcpu));
                vcpu_info.vector = irq.vector;
 
-               trace_kvm_pi_irte_update(vcpu->vcpu_id, e->gsi,
+               trace_kvm_pi_irte_update(vcpu->vcpu_id, host_irq, e->gsi,
                                vcpu_info.vector, vcpu_info.pi_desc_addr, set);
 
                if (set)
-- 
2.1.0

Reply via email to