]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - arch/x86/kvm/trace.h
svm: Add VMEXIT handlers for AVIC
[mirror_ubuntu-bionic-kernel.git] / arch / x86 / kvm / trace.h
index 2f1ea2f61e1fceef4a77b3955c4d3a9c4a936a72..39f264cbda71a294c8a1257599415009b0b4bfb8 100644 (file)
@@ -1292,6 +1292,63 @@ TRACE_EVENT(kvm_hv_stimer_cleanup,
                  __entry->vcpu_id, __entry->timer_index)
 );
 
+/*
+ * Tracepoint for AMD AVIC
+ */
+TRACE_EVENT(kvm_avic_incomplete_ipi,
+           TP_PROTO(u32 vcpu, u32 icrh, u32 icrl, u32 id, u32 index),
+           TP_ARGS(vcpu, icrh, icrl, id, index),
+
+       TP_STRUCT__entry(
+               __field(u32, vcpu)
+               __field(u32, icrh)
+               __field(u32, icrl)
+               __field(u32, id)
+               __field(u32, index)
+       ),
+
+       TP_fast_assign(
+               __entry->vcpu = vcpu;
+               __entry->icrh = icrh;
+               __entry->icrl = icrl;
+               __entry->id = id;
+               __entry->index = index;
+       ),
+
+       TP_printk("vcpu=%u, icrh:icrl=%#010x:%08x, id=%u, index=%u\n",
+                 __entry->vcpu, __entry->icrh, __entry->icrl,
+                 __entry->id, __entry->index)
+);
+
+TRACE_EVENT(kvm_avic_unaccelerated_access,
+           TP_PROTO(u32 vcpu, u32 offset, bool ft, bool rw, u32 vec),
+           TP_ARGS(vcpu, offset, ft, rw, vec),
+
+       TP_STRUCT__entry(
+               __field(u32, vcpu)
+               __field(u32, offset)
+               __field(bool, ft)
+               __field(bool, rw)
+               __field(u32, vec)
+       ),
+
+       TP_fast_assign(
+               __entry->vcpu = vcpu;
+               __entry->offset = offset;
+               __entry->ft = ft;
+               __entry->rw = rw;
+               __entry->vec = vec;
+       ),
+
+       TP_printk("vcpu=%u, offset=%#x(%s), %s, %s, vec=%#x\n",
+                 __entry->vcpu,
+                 __entry->offset,
+                 __print_symbolic(__entry->offset, kvm_trace_symbol_apic),
+                 __entry->ft ? "trap" : "fault",
+                 __entry->rw ? "write" : "read",
+                 __entry->vec)
+);
+
 #endif /* _TRACE_KVM_H */
 
 #undef TRACE_INCLUDE_PATH