Re: [PATCH 06/17] x86, mpx: trace attempts to find bounds tables

Borislav Petkov
2015-03-27T12:34:38Z

On Thu, Mar 26, 2015 at 11:33:41AM -0700, Dave Hansen wrote:
>
> From: Dave Hansen <dave.hansen@linux.intel.com>
>
> This event traces any time we go looking to unmap a bounds table
> for a given virtual address range. This is useful to ensure
> that the kernel actually "tried" to free a bounds table versus
> times it succeeded.
>
> It might try and fail if it realized that a table was shared
> with an adjacent VMA which is not being unmapped.

Would it make sense to extend this tracepoint to also dump the error
values returned from unmap_edge_bts() and unmap_single_bt() inside
mpx_unmap_tables()?

> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
> ---
>
> b/arch/x86/include/asm/trace/mpx.h | 22 ++++++++++++++++++++++
> b/arch/x86/mm/mpx.c | 1 +
> 2 files changed, 23 insertions(+)
>
> diff -puN arch/x86/include/asm/trace/mpx.h~mpx-trace_unmap_search arch/x86/include/asm/trace/mpx.h
> --- a/arch/x86/include/asm/trace/mpx.h~mpx-trace_unmap_search 2015-03-26 11:27:06.684292099 -0700
> +++ b/arch/x86/include/asm/trace/mpx.h 2015-03-26 11:27:06.689292324 -0700
> @@ -75,6 +75,28 @@ TRACE_EVENT(mpx_unmap_zap,
> )
> );
>
> +TRACE_EVENT(mpx_unmap_search,
> +
> + TP_PROTO(unsigned long start,
> + unsigned long end),
> + TP_ARGS(start, end),
> +
> + TP_STRUCT__entry(
> + __field(unsigned long, start)
> + __field(unsigned long, end)
> + ),
> +
> + TP_fast_assign(
> + __entry->start = start;
> + __entry->end = end;
> + ),
> +
> + TP_printk("0x%p -> 0x%p",

Interval?

> + (void *)__entry->start,
> + (void *)__entry->end
> + )
> +);
> +
> #else

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--