[lttng-dev] [PATCH lttng-modules] Fix: x86 kvm mmutrace instrumentation for kernel < 3.6

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Tue May 10 16:02:22 UTC 2016


merged, thanks,

Mathieu

----- On May 10, 2016, at 9:37 AM, Michael Jeanson mjeanson at efficios.com wrote:

> From: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> 
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
> Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
> ---
> .../events/lttng-module/arch/x86/kvm/mmutrace.h    | 26 ++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
> 
> diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
> b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
> index 165d7d6..2a4f887 100644
> --- a/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
> +++ b/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h
> @@ -55,6 +55,7 @@
> 	{ PFERR_RSVD_MASK, "RSVD" },	\
> 	{ PFERR_FETCH_MASK, "F" }
> 
> +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
> /*
>  * A pagetable walk has started
>  */
> @@ -76,6 +77,31 @@ LTTNG_TRACEPOINT_EVENT(
> 	TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr,
> 		  __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags))
> )
> +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
> +/*
> + * A pagetable walk has started
> + */
> +LTTNG_TRACEPOINT_EVENT(
> +	kvm_mmu_pagetable_walk,
> +	TP_PROTO(u64 addr, int write_fault, int user_fault, int fetch_fault),
> +	TP_ARGS(addr, write_fault, user_fault, fetch_fault),
> +
> +	TP_STRUCT__entry(
> +		__field(__u64, addr)
> +		__field(__u32, pferr)
> +	),
> +
> +	TP_fast_assign(
> +		tp_assign(addr, addr)
> +		tp_assign(pferr,
> +			(!!write_fault << 1) | (!!user_fault << 2)
> +			| (!!fetch_fault << 4))
> +	),
> +
> +	TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr,
> +		  __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags))
> +)
> +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) */
> 
> 
> /* We just walked a paging element */
> --
> 1.9.1

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list