rk: ion: add buffer mmap/munmap trace
[firefly-linux-kernel-4.4.55.git] / drivers / staging / android / trace / ion.h
1 #undef TRACE_SYSTEM
2 #define TRACE_INCLUDE_PATH ../../drivers/staging/android/trace
3 #define TRACE_SYSTEM ion
4
5 #if !defined(_TRACE_ION_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_ION_H
7
8 #include <linux/tracepoint.h>
9
10 DECLARE_EVENT_CLASS(ion_buffer_op,
11         TP_PROTO(const char* client, unsigned int buf, unsigned int size),
12         TP_ARGS(client, buf, size),
13         TP_STRUCT__entry(
14                 __string(client, client)
15                 __field(unsigned int, buf)
16                 __field(unsigned int, size)
17         ),
18         TP_fast_assign(
19                 __assign_str(client, client);
20                 __entry->buf = buf;
21                 __entry->size = size;
22         ),
23         TP_printk("client=%s,buffer=%08x:%d",
24                   __get_str(client), __entry->buf, __entry->size)
25 );
26 DEFINE_EVENT(ion_buffer_op, ion_buffer_alloc,
27         TP_PROTO(const char* client, unsigned int buffer, unsigned int size),
28         TP_ARGS(client, buffer, size));
29
30 DEFINE_EVENT(ion_buffer_op, ion_buffer_free,
31         TP_PROTO(const char* client, unsigned int buffer, unsigned int size),
32         TP_ARGS(client, buffer, size));
33
34 DEFINE_EVENT(ion_buffer_op, ion_buffer_import,
35         TP_PROTO(const char* client, unsigned int buffer, unsigned int size),
36         TP_ARGS(client, buffer, size));
37
38 DEFINE_EVENT(ion_buffer_op, ion_buffer_destroy,
39         TP_PROTO(const char* client, unsigned int buffer, unsigned int size),
40         TP_ARGS(client, buffer, size));
41
42 DEFINE_EVENT(ion_buffer_op, ion_kernel_unmap,
43         TP_PROTO(const char* client, unsigned int buffer, unsigned int size),
44         TP_ARGS(client, buffer, size));
45
46 TRACE_EVENT(ion_buffer_share,
47         TP_PROTO(const char* client, unsigned int buf, unsigned int size, int fd),
48         TP_ARGS(client, buf, size, fd),
49         TP_STRUCT__entry(
50                 __string(client, client)
51                 __field(unsigned int, buf)
52                 __field(unsigned int, size)
53                 __field(int, fd)
54         ),
55         TP_fast_assign(
56                 __assign_str(client, client);
57                 __entry->buf = buf;
58                 __entry->size = size;
59                 __entry->fd = fd;
60         ),
61         TP_printk("client=%s,buffer=%08x:%d,fd=%d",
62                   __get_str(client), __entry->buf, __entry->size, __entry->fd)
63 );
64
65 DECLARE_EVENT_CLASS(ion_client_op,
66         TP_PROTO(const char* client),
67         TP_ARGS(client),
68         TP_STRUCT__entry(
69                 __string(client, client)
70         ),
71         TP_fast_assign(
72                 __assign_str(client, client);
73         ),
74         TP_printk("client=%s", __get_str(client))
75 );
76 DEFINE_EVENT(ion_client_op, ion_client_create,
77         TP_PROTO(const char* client),
78         TP_ARGS(client));
79 DEFINE_EVENT(ion_client_op, ion_client_destroy,
80         TP_PROTO(const char* client),
81         TP_ARGS(client));
82
83 DECLARE_EVENT_CLASS(ion_iommu_op,
84         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
85                 const char* iommu_dev, unsigned int iommu_addr,
86                 unsigned int iommu_size, unsigned int map_cnt),
87         TP_ARGS(client, buf, size, iommu_dev, iommu_addr, iommu_size, map_cnt),
88         TP_STRUCT__entry(
89                 __string(client, client)
90                 __field(unsigned int, buf)
91                 __field(unsigned int, size)
92                 __string(iommu_dev, iommu_dev)
93                 __field(unsigned int, iommu_addr)
94                 __field(unsigned int, iommu_size)
95                 __field(unsigned int, map_cnt)
96         ),
97         TP_fast_assign(
98                 __assign_str(client, client);
99                 __entry->buf = buf;
100                 __entry->size = size;
101                 __assign_str(iommu_dev, iommu_dev);
102                 __entry->iommu_addr = iommu_addr;
103                 __entry->iommu_size = iommu_size;
104                 __entry->map_cnt = map_cnt;
105         ),
106         TP_printk("client=%s,buffer=%08x:%d,iommu=%s,map=%08x:%d,map_count=%d",
107                   __get_str(client), __entry->buf, __entry->size,
108                   __get_str(iommu_dev), __entry->iommu_addr, __entry->iommu_size,
109                   __entry->map_cnt)
110 );
111 DEFINE_EVENT(ion_iommu_op, ion_iommu_map,
112         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
113                 const char* iommu_dev, unsigned int iommu_addr,
114                 unsigned int iommu_size, unsigned int map_cnt),
115         TP_ARGS(client, buf, size, iommu_dev, iommu_addr, iommu_size, map_cnt));
116 DEFINE_EVENT(ion_iommu_op, ion_iommu_unmap,
117         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
118                 const char* iommu_dev, unsigned int iommu_addr,
119                 unsigned int iommu_size, unsigned int map_cnt),
120         TP_ARGS(client, buf, size, iommu_dev, iommu_addr, iommu_size, map_cnt));
121 DEFINE_EVENT(ion_iommu_op, ion_iommu_release,
122         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
123                 const char* iommu_dev, unsigned int iommu_addr,
124                 unsigned int iommu_size, unsigned int map_cnt),
125         TP_ARGS(client, buf, size, iommu_dev, iommu_addr, iommu_size, map_cnt));
126
127 DECLARE_EVENT_CLASS(ion_kmap_op,
128         TP_PROTO(const char* client, unsigned int buf, unsigned int size, unsigned int kaddr),
129         TP_ARGS(client, buf, size, kaddr),
130         TP_STRUCT__entry(
131                 __string(client, client)
132                 __field(unsigned int, buf)
133                 __field(unsigned int, size)
134                 __field(unsigned int, kaddr)
135         ),
136         TP_fast_assign(
137                 __assign_str(client, client);
138                 __entry->buf = buf;
139                 __entry->size = size;
140                 __entry->kaddr = kaddr;
141         ),
142         TP_printk("client=%s,buffer=%08x:%d,kaddr=%08x",
143                   __get_str(client), __entry->buf, __entry->size, __entry->kaddr)
144 );
145 DEFINE_EVENT(ion_kmap_op, ion_kernel_map,
146         TP_PROTO(const char* client, unsigned int buffer, unsigned int size, unsigned int kaddr),
147         TP_ARGS(client, buffer, size, kaddr));
148
149 DECLARE_EVENT_CLASS(ion_mmap_op,
150         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
151                 unsigned long vm_start, unsigned long vm_end),
152         TP_ARGS(client, buf, size, vm_start, vm_end),
153         TP_STRUCT__entry(
154                 __string(client, client)
155                 __field(unsigned int, buf)
156                 __field(unsigned int, size)
157                 __field(unsigned long, vm_start)
158                 __field(unsigned long, vm_end)
159         ),
160         TP_fast_assign(
161                 __assign_str(client, client);
162                 __entry->buf = buf;
163                 __entry->size = size;
164                 __entry->vm_start = vm_start;
165                 __entry->vm_end = vm_end;
166         ),
167         TP_printk("client=%s,buffer=%08x:%d,vma[%08lx:%08lx]",
168                   __get_str(client), __entry->buf, __entry->size,
169                   __entry->vm_start, __entry->vm_end)
170 );
171
172 DEFINE_EVENT(ion_mmap_op, ion_buffer_mmap,
173         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
174                 unsigned long vm_start, unsigned long vm_end),
175         TP_ARGS(client, buf, size, vm_start, vm_end));
176
177 DEFINE_EVENT(ion_mmap_op, ion_buffer_munmap,
178         TP_PROTO(const char* client, unsigned int buf, unsigned int size,
179                 unsigned long vm_start, unsigned long vm_end),
180         TP_ARGS(client, buf, size, vm_start, vm_end));
181
182 #endif /* _TRACE_ION_H */
183
184 /* This part must be outside protection */
185 #include <trace/define_trace.h>