mm: cma: add trace events for CMA allocations and freeings
Add trace events for cma_alloc() and cma_release(). The cma_alloc tracepoint is used both for successful and failed allocations, in case of allocation failure pfn=-1UL is stored and printed. Signed-off-by: Stefan Strogin <stefan.strogin@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Michal Nazarewicz <mpn@google.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Cc: Thierry Reding <treding@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
cdd7875e0c
commit
99e8ea6cd2
66
include/trace/events/cma.h
Normal file
66
include/trace/events/cma.h
Normal file
@@ -0,0 +1,66 @@
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM cma
|
||||
|
||||
#if !defined(_TRACE_CMA_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define _TRACE_CMA_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/tracepoint.h>
|
||||
|
||||
TRACE_EVENT(cma_alloc,
|
||||
|
||||
TP_PROTO(unsigned long pfn, const struct page *page,
|
||||
unsigned int count, unsigned int align),
|
||||
|
||||
TP_ARGS(pfn, page, count, align),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned long, pfn)
|
||||
__field(const struct page *, page)
|
||||
__field(unsigned int, count)
|
||||
__field(unsigned int, align)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->pfn = pfn;
|
||||
__entry->page = page;
|
||||
__entry->count = count;
|
||||
__entry->align = align;
|
||||
),
|
||||
|
||||
TP_printk("pfn=%lx page=%p count=%u align=%u",
|
||||
__entry->pfn,
|
||||
__entry->page,
|
||||
__entry->count,
|
||||
__entry->align)
|
||||
);
|
||||
|
||||
TRACE_EVENT(cma_release,
|
||||
|
||||
TP_PROTO(unsigned long pfn, const struct page *page,
|
||||
unsigned int count),
|
||||
|
||||
TP_ARGS(pfn, page, count),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned long, pfn)
|
||||
__field(const struct page *, page)
|
||||
__field(unsigned int, count)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->pfn = pfn;
|
||||
__entry->page = page;
|
||||
__entry->count = count;
|
||||
),
|
||||
|
||||
TP_printk("pfn=%lx page=%p count=%u",
|
||||
__entry->pfn,
|
||||
__entry->page,
|
||||
__entry->count)
|
||||
);
|
||||
|
||||
#endif /* _TRACE_CMA_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#include <trace/define_trace.h>
|
Reference in New Issue
Block a user