Adding rostedt for the TPs.

Steve, please take a look at the rest of the patchset too, there are
more tracepoints being added.

On Thu, Mar 26, 2015 at 11:33:36AM -0700, Dave Hansen wrote:
> 
> From: Dave Hansen <dave.han...@linux.intel.com>
> 
> This is the first in a series of MPX tracing patches.
> I've found these extremely useful in the process of
> debugging applications and the kernel code itself.
> 
> This exception hooks in to the bounds (#BR) exception
> very early and allows capturing the key registers which
> would influence how the exception is handled.
> 
> Note that bndcfgu/bndstatus are technically still
> 64-bit registers even in 32-bit mode.
> 
> Signed-off-by: Dave Hansen <dave.han...@linux.intel.com>
> ---
> 
>  b/arch/x86/include/asm/trace/mpx.h |   48 
> +++++++++++++++++++++++++++++++++++++
>  b/arch/x86/kernel/traps.c          |    2 +
>  b/arch/x86/mm/mpx.c                |    3 ++
>  3 files changed, 53 insertions(+)
> 
> diff -puN /dev/null arch/x86/include/asm/trace/mpx.h
> --- /dev/null 2014-10-10 16:10:57.316716958 -0700
> +++ b/arch/x86/include/asm/trace/mpx.h        2015-03-26 11:27:05.444236170 
> -0700
> @@ -0,0 +1,48 @@
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM mpx
> +
> +#if !defined(_TRACE_MPX_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_MPX_H
> +
> +#include <linux/tracepoint.h>
> +
> +#ifdef CONFIG_X86_INTEL_MPX
> +
> +TRACE_EVENT(bounds_exception_mpx,
> +
> +     TP_PROTO(struct bndcsr *bndcsr),
> +     TP_ARGS(bndcsr),
> +
> +     TP_STRUCT__entry(
> +             __field(u64, bndcfgu)
> +             __field(u64, bndstatus)
> +     ),
> +
> +     TP_fast_assign(
> +             __entry->bndcfgu   = bndcsr->bndcfgu;
> +             __entry->bndstatus = bndcsr->bndstatus;
> +     ),
> +
> +     TP_printk("bndcfgu:0x%llx bndstatus:0x%llx",
> +             __entry->bndcfgu,
> +             __entry->bndstatus)
> +);
> +
> +#else
> +
> +/*
> + * This gets used outside of MPX-specific code, so we need a stub.
> + */
> +static inline void trace_bounds_exception_mpx(struct bndcsr *bndcsr)
> +{
> +}
> +
> +#endif /* CONFIG_X86_INTEL_MPX */
> +
> +#undef TRACE_INCLUDE_PATH
> +#define TRACE_INCLUDE_PATH asm/trace/
> +#define TRACE_INCLUDE_FILE mpx
> +#endif /* _TRACE_MPX_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
> diff -puN arch/x86/kernel/traps.c~x86-br-exception-trace 
> arch/x86/kernel/traps.c
> --- a/arch/x86/kernel/traps.c~x86-br-exception-trace  2015-03-26 
> 11:27:05.439235945 -0700
> +++ b/arch/x86/kernel/traps.c 2015-03-26 11:27:05.445236215 -0700
> @@ -61,6 +61,7 @@
>  #include <asm/mach_traps.h>
>  #include <asm/alternative.h>
>  #include <asm/mpx.h>
> +#include <asm/trace/mpx.h>
>  #include <asm/xsave.h>
>  
>  #ifdef CONFIG_X86_64
> @@ -401,6 +402,7 @@ dotraplinkage void do_bounds(struct pt_r
>       if (!bndcsr)
>               goto exit_trap;
>  
> +     trace_bounds_exception_mpx(bndcsr);
>       /*
>        * The error code field of the BNDSTATUS register communicates status
>        * information of a bound range exception #BR or operation involving
> diff -puN arch/x86/mm/mpx.c~x86-br-exception-trace arch/x86/mm/mpx.c
> --- a/arch/x86/mm/mpx.c~x86-br-exception-trace        2015-03-26 
> 11:27:05.441236035 -0700
> +++ b/arch/x86/mm/mpx.c       2015-03-26 11:27:05.445236215 -0700
> @@ -18,6 +18,9 @@
>  #include <asm/processor.h>
>  #include <asm/fpu-internal.h>
>  
> +#define CREATE_TRACE_POINTS
> +#include <asm/trace/mpx.h>
> +
>  static const char *mpx_mapping_name(struct vm_area_struct *vma)
>  {
>       return "[mpx]";
> _
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to