Add 'lat' field to the mm_page_alloc tracepoint. It shows allocation latency in microseconds (0.000001 second).
Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com> --- include/trace/events/kmem.h | 10 ++++++---- mm/page_alloc.c | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h index 6bc943ecb841..25ab6f8b3b42 100644 --- a/include/trace/events/kmem.h +++ b/include/trace/events/kmem.h @@ -194,15 +194,16 @@ TRACE_EVENT(mm_page_free_batched, TRACE_EVENT(mm_page_alloc, TP_PROTO(struct page *page, unsigned int order, - gfp_t gfp_flags, int migratetype), + gfp_t gfp_flags, int migratetype, u64 time), - TP_ARGS(page, order, gfp_flags, migratetype), + TP_ARGS(page, order, gfp_flags, migratetype, time), TP_STRUCT__entry( __field( struct page *, page ) __field( unsigned int, order ) __field( gfp_t, gfp_flags ) __field( int, migratetype ) + __field( u64, time ) ), TP_fast_assign( @@ -212,12 +213,13 @@ TRACE_EVENT(mm_page_alloc, __entry->migratetype = migratetype; ), - TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", + TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s lat=%ld", __entry->page, __entry->page ? page_to_pfn(__entry->page) : 0, __entry->order, __entry->migratetype, - show_gfp_flags(__entry->gfp_flags)) + show_gfp_flags(__entry->gfp_flags), + __entry->time) ); DECLARE_EVENT_CLASS(mm_page, diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 47889c7b6ac4..63d723bff3a9 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3616,7 +3616,8 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, } __alloc_collect_stats(gfp_mask, order, page, start); - trace_mm_page_alloc(page, order, gfp_mask, migratetype); + trace_mm_page_alloc(page, order, gfp_mask, migratetype, + jiffies_to_usecs(jiffies - start)); out: /* -- 2.19.2 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel