Re: [PART1 RFC v3 08/12] KVM: x86: Add trace events for AVIC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 18/03/2016 07:09, Suravee Suthikulpanit wrote:
> Introduce trace events for AMD AVIC incomplete IPI vmexit, and
> AVIC unaccelerate access vmexit.
> 
> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
> ---
>  arch/x86/kvm/trace.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  arch/x86/kvm/x86.c   |  2 ++
>  2 files changed, 59 insertions(+)
> 
> diff --git a/arch/x86/kvm/trace.h b/arch/x86/kvm/trace.h
> index ad9f6a2..3c85a3d 100644
> --- a/arch/x86/kvm/trace.h
> +++ b/arch/x86/kvm/trace.h
> @@ -1288,6 +1288,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=%#x, icrh:icrl=%#010x:%08x, id=%u, index=%u\n",

vcpus are usually printed with %u.  Apart from this, the patch looks
good.  You can squash it in "svm: Add VMEXIT handlers for AVIC".

Paolo

> +		  __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=%#x, 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
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 4d2961d..775de1c 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -8395,3 +8395,5 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_write_tsc_offset);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_ple_window);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_pml_full);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_pi_irte_update);
> +EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_unaccelerated_access);
> +EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_avic_incomplete_ipi);
> 
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux