mm: cma: add trace events for CMA alloc perf testing
[linux-2.6-microblaze.git] / include / trace / events / cma.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM cma
4
5 #if !defined(_TRACE_CMA_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_CMA_H
7
8 #include <linux/types.h>
9 #include <linux/tracepoint.h>
10
11 DECLARE_EVENT_CLASS(cma_alloc_class,
12
13         TP_PROTO(unsigned long pfn, const struct page *page,
14                  unsigned int count, unsigned int align),
15
16         TP_ARGS(pfn, page, count, align),
17
18         TP_STRUCT__entry(
19                 __field(unsigned long, pfn)
20                 __field(const struct page *, page)
21                 __field(unsigned int, count)
22                 __field(unsigned int, align)
23         ),
24
25         TP_fast_assign(
26                 __entry->pfn = pfn;
27                 __entry->page = page;
28                 __entry->count = count;
29                 __entry->align = align;
30         ),
31
32         TP_printk("pfn=%lx page=%p count=%u align=%u",
33                   __entry->pfn,
34                   __entry->page,
35                   __entry->count,
36                   __entry->align)
37 );
38
39 TRACE_EVENT(cma_release,
40
41         TP_PROTO(unsigned long pfn, const struct page *page,
42                  unsigned int count),
43
44         TP_ARGS(pfn, page, count),
45
46         TP_STRUCT__entry(
47                 __field(unsigned long, pfn)
48                 __field(const struct page *, page)
49                 __field(unsigned int, count)
50         ),
51
52         TP_fast_assign(
53                 __entry->pfn = pfn;
54                 __entry->page = page;
55                 __entry->count = count;
56         ),
57
58         TP_printk("pfn=%lx page=%p count=%u",
59                   __entry->pfn,
60                   __entry->page,
61                   __entry->count)
62 );
63
64 TRACE_EVENT(cma_alloc_start,
65
66         TP_PROTO(const char *name, unsigned int count, unsigned int align),
67
68         TP_ARGS(name, count, align),
69
70         TP_STRUCT__entry(
71                 __string(name, name)
72                 __field(unsigned int, count)
73                 __field(unsigned int, align)
74         ),
75
76         TP_fast_assign(
77                 __assign_str(name, name);
78                 __entry->count = count;
79                 __entry->align = align;
80         ),
81
82         TP_printk("name=%s count=%u align=%u",
83                   __get_str(name),
84                   __entry->count,
85                   __entry->align)
86 );
87
88 DEFINE_EVENT(cma_alloc_class, cma_alloc,
89
90         TP_PROTO(unsigned long pfn, const struct page *page,
91                  unsigned int count, unsigned int align),
92
93         TP_ARGS(pfn, page, count, align)
94 );
95
96 DEFINE_EVENT(cma_alloc_class, cma_alloc_busy_retry,
97
98         TP_PROTO(unsigned long pfn, const struct page *page,
99                  unsigned int count, unsigned int align),
100
101         TP_ARGS(pfn, page, count, align)
102 );
103
104 #endif /* _TRACE_CMA_H */
105
106 /* This part must be outside protection */
107 #include <trace/define_trace.h>