u32 vcpu_id = AVIC_GATAG_TO_VCPUID(ga_tag);
 
        pr_debug("SVM: %s: vm_id=%#x, vcpu_id=%#x\n", __func__, vm_id, vcpu_id);
+       trace_kvm_avic_ga_log(vm_id, vcpu_id);
 
        spin_lock_irqsave(&svm_vm_data_hash_lock, flags);
        hash_for_each_possible(svm_vm_data_hash, kvm_svm, hnode, vm_id) {
 
                  __entry->vec)
 );
 
+TRACE_EVENT(kvm_avic_ga_log,
+           TP_PROTO(u32 vmid, u32 vcpuid),
+           TP_ARGS(vmid, vcpuid),
+
+       TP_STRUCT__entry(
+               __field(u32, vmid)
+               __field(u32, vcpuid)
+       ),
+
+       TP_fast_assign(
+               __entry->vmid = vmid;
+               __entry->vcpuid = vcpuid;
+       ),
+
+       TP_printk("vmid=%u, vcpuid=%u",
+                 __entry->vmid, __entry->vcpuid)
+);
+
 TRACE_EVENT(kvm_hv_timer_state,
                TP_PROTO(unsigned int vcpu_id, unsigned int hv_timer_in_use),
                TP_ARGS(vcpu_id, hv_timer_in_use),
 
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_pi_irte_update);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_unaccelerated_access);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_incomplete_ipi);
+EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_ga_log);
 EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_apicv_update_request);