Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86/mpx: Trace allocation of new bounds tables

Bounds tables are a significant consumer of memory. It is
important to know when they are being allocated. Add a trace
point to trace whenever an allocation occurs and also its
virtual address.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave@sr71.net>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20150607183704.EC23A93E@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by

Dave Hansen and committed by
Ingo Molnar
cd4996dc 2a1dcb1f

+17
+16
arch/x86/include/asm/trace/mpx.h
··· 95 95 TP_ARGS(start, end) 96 96 ); 97 97 98 + TRACE_EVENT(mpx_new_bounds_table, 99 + 100 + TP_PROTO(unsigned long table_vaddr), 101 + TP_ARGS(table_vaddr), 102 + 103 + TP_STRUCT__entry( 104 + __field(unsigned long, table_vaddr) 105 + ), 106 + 107 + TP_fast_assign( 108 + __entry->table_vaddr = table_vaddr; 109 + ), 110 + 111 + TP_printk("table vaddr:%p", (void *)__entry->table_vaddr) 112 + ); 113 + 98 114 #else 99 115 100 116 /*
+1
arch/x86/mm/mpx.c
··· 483 483 ret = -EINVAL; 484 484 goto out_unmap; 485 485 } 486 + trace_mpx_new_bounds_table(bt_addr); 486 487 return 0; 487 488 out_unmap: 488 489 vm_munmap(bt_addr & MPX_BT_ADDR_MASK, MPX_BT_SIZE_BYTES);