i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
[linux/fpc-iii.git] / include / trace / events / cachefiles.h
blob5d9de24cb9c016a137d98394d9fdaaa3738bfe28
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* CacheFiles tracepoints
4 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
6 */
7 #undef TRACE_SYSTEM
8 #define TRACE_SYSTEM cachefiles
10 #if !defined(_TRACE_CACHEFILES_H) || defined(TRACE_HEADER_MULTI_READ)
11 #define _TRACE_CACHEFILES_H
13 #include <linux/tracepoint.h>
16 * Define enums for tracing information.
18 #ifndef __CACHEFILES_DECLARE_TRACE_ENUMS_ONCE_ONLY
19 #define __CACHEFILES_DECLARE_TRACE_ENUMS_ONCE_ONLY
21 enum cachefiles_obj_ref_trace {
22 cachefiles_obj_put_wait_retry = fscache_obj_ref__nr_traces,
23 cachefiles_obj_put_wait_timeo,
24 cachefiles_obj_ref__nr_traces
27 #endif
30 * Define enum -> string mappings for display.
32 #define cachefiles_obj_kill_traces \
33 EM(FSCACHE_OBJECT_IS_STALE, "stale") \
34 EM(FSCACHE_OBJECT_NO_SPACE, "no_space") \
35 EM(FSCACHE_OBJECT_WAS_RETIRED, "was_retired") \
36 E_(FSCACHE_OBJECT_WAS_CULLED, "was_culled")
38 #define cachefiles_obj_ref_traces \
39 EM(fscache_obj_get_add_to_deps, "GET add_to_deps") \
40 EM(fscache_obj_get_queue, "GET queue") \
41 EM(fscache_obj_put_alloc_fail, "PUT alloc_fail") \
42 EM(fscache_obj_put_attach_fail, "PUT attach_fail") \
43 EM(fscache_obj_put_drop_obj, "PUT drop_obj") \
44 EM(fscache_obj_put_enq_dep, "PUT enq_dep") \
45 EM(fscache_obj_put_queue, "PUT queue") \
46 EM(fscache_obj_put_work, "PUT work") \
47 EM(cachefiles_obj_put_wait_retry, "PUT wait_retry") \
48 E_(cachefiles_obj_put_wait_timeo, "PUT wait_timeo")
51 * Export enum symbols via userspace.
53 #undef EM
54 #undef E_
55 #define EM(a, b) TRACE_DEFINE_ENUM(a);
56 #define E_(a, b) TRACE_DEFINE_ENUM(a);
58 cachefiles_obj_kill_traces;
59 cachefiles_obj_ref_traces;
62 * Now redefine the EM() and E_() macros to map the enums to the strings that
63 * will be printed in the output.
65 #undef EM
66 #undef E_
67 #define EM(a, b) { a, b },
68 #define E_(a, b) { a, b }
71 TRACE_EVENT(cachefiles_ref,
72 TP_PROTO(struct cachefiles_object *obj,
73 struct fscache_cookie *cookie,
74 enum cachefiles_obj_ref_trace why,
75 int usage),
77 TP_ARGS(obj, cookie, why, usage),
79 /* Note that obj may be NULL */
80 TP_STRUCT__entry(
81 __field(struct cachefiles_object *, obj )
82 __field(struct fscache_cookie *, cookie )
83 __field(enum cachefiles_obj_ref_trace, why )
84 __field(int, usage )
87 TP_fast_assign(
88 __entry->obj = obj;
89 __entry->cookie = cookie;
90 __entry->usage = usage;
91 __entry->why = why;
94 TP_printk("c=%p o=%p u=%d %s",
95 __entry->cookie, __entry->obj, __entry->usage,
96 __print_symbolic(__entry->why, cachefiles_obj_ref_traces))
99 TRACE_EVENT(cachefiles_lookup,
100 TP_PROTO(struct cachefiles_object *obj,
101 struct dentry *de,
102 struct inode *inode),
104 TP_ARGS(obj, de, inode),
106 TP_STRUCT__entry(
107 __field(struct cachefiles_object *, obj )
108 __field(struct dentry *, de )
109 __field(struct inode *, inode )
112 TP_fast_assign(
113 __entry->obj = obj;
114 __entry->de = de;
115 __entry->inode = inode;
118 TP_printk("o=%p d=%p i=%p",
119 __entry->obj, __entry->de, __entry->inode)
122 TRACE_EVENT(cachefiles_mkdir,
123 TP_PROTO(struct cachefiles_object *obj,
124 struct dentry *de, int ret),
126 TP_ARGS(obj, de, ret),
128 TP_STRUCT__entry(
129 __field(struct cachefiles_object *, obj )
130 __field(struct dentry *, de )
131 __field(int, ret )
134 TP_fast_assign(
135 __entry->obj = obj;
136 __entry->de = de;
137 __entry->ret = ret;
140 TP_printk("o=%p d=%p r=%u",
141 __entry->obj, __entry->de, __entry->ret)
144 TRACE_EVENT(cachefiles_create,
145 TP_PROTO(struct cachefiles_object *obj,
146 struct dentry *de, int ret),
148 TP_ARGS(obj, de, ret),
150 TP_STRUCT__entry(
151 __field(struct cachefiles_object *, obj )
152 __field(struct dentry *, de )
153 __field(int, ret )
156 TP_fast_assign(
157 __entry->obj = obj;
158 __entry->de = de;
159 __entry->ret = ret;
162 TP_printk("o=%p d=%p r=%u",
163 __entry->obj, __entry->de, __entry->ret)
166 TRACE_EVENT(cachefiles_unlink,
167 TP_PROTO(struct cachefiles_object *obj,
168 struct dentry *de,
169 enum fscache_why_object_killed why),
171 TP_ARGS(obj, de, why),
173 /* Note that obj may be NULL */
174 TP_STRUCT__entry(
175 __field(struct cachefiles_object *, obj )
176 __field(struct dentry *, de )
177 __field(enum fscache_why_object_killed, why )
180 TP_fast_assign(
181 __entry->obj = obj;
182 __entry->de = de;
183 __entry->why = why;
186 TP_printk("o=%p d=%p w=%s",
187 __entry->obj, __entry->de,
188 __print_symbolic(__entry->why, cachefiles_obj_kill_traces))
191 TRACE_EVENT(cachefiles_rename,
192 TP_PROTO(struct cachefiles_object *obj,
193 struct dentry *de,
194 struct dentry *to,
195 enum fscache_why_object_killed why),
197 TP_ARGS(obj, de, to, why),
199 /* Note that obj may be NULL */
200 TP_STRUCT__entry(
201 __field(struct cachefiles_object *, obj )
202 __field(struct dentry *, de )
203 __field(struct dentry *, to )
204 __field(enum fscache_why_object_killed, why )
207 TP_fast_assign(
208 __entry->obj = obj;
209 __entry->de = de;
210 __entry->to = to;
211 __entry->why = why;
214 TP_printk("o=%p d=%p t=%p w=%s",
215 __entry->obj, __entry->de, __entry->to,
216 __print_symbolic(__entry->why, cachefiles_obj_kill_traces))
219 TRACE_EVENT(cachefiles_mark_active,
220 TP_PROTO(struct cachefiles_object *obj,
221 struct dentry *de),
223 TP_ARGS(obj, de),
225 /* Note that obj may be NULL */
226 TP_STRUCT__entry(
227 __field(struct cachefiles_object *, obj )
228 __field(struct dentry *, de )
231 TP_fast_assign(
232 __entry->obj = obj;
233 __entry->de = de;
236 TP_printk("o=%p d=%p",
237 __entry->obj, __entry->de)
240 TRACE_EVENT(cachefiles_wait_active,
241 TP_PROTO(struct cachefiles_object *obj,
242 struct dentry *de,
243 struct cachefiles_object *xobj),
245 TP_ARGS(obj, de, xobj),
247 /* Note that obj may be NULL */
248 TP_STRUCT__entry(
249 __field(struct cachefiles_object *, obj )
250 __field(struct dentry *, de )
251 __field(struct cachefiles_object *, xobj )
252 __field(u16, flags )
253 __field(u16, fsc_flags )
256 TP_fast_assign(
257 __entry->obj = obj;
258 __entry->de = de;
259 __entry->xobj = xobj;
260 __entry->flags = xobj->flags;
261 __entry->fsc_flags = xobj->fscache.flags;
264 TP_printk("o=%p d=%p wo=%p wf=%x wff=%x",
265 __entry->obj, __entry->de, __entry->xobj,
266 __entry->flags, __entry->fsc_flags)
269 TRACE_EVENT(cachefiles_mark_inactive,
270 TP_PROTO(struct cachefiles_object *obj,
271 struct dentry *de,
272 struct inode *inode),
274 TP_ARGS(obj, de, inode),
276 /* Note that obj may be NULL */
277 TP_STRUCT__entry(
278 __field(struct cachefiles_object *, obj )
279 __field(struct dentry *, de )
280 __field(struct inode *, inode )
283 TP_fast_assign(
284 __entry->obj = obj;
285 __entry->de = de;
286 __entry->inode = inode;
289 TP_printk("o=%p d=%p i=%p",
290 __entry->obj, __entry->de, __entry->inode)
293 TRACE_EVENT(cachefiles_mark_buried,
294 TP_PROTO(struct cachefiles_object *obj,
295 struct dentry *de,
296 enum fscache_why_object_killed why),
298 TP_ARGS(obj, de, why),
300 /* Note that obj may be NULL */
301 TP_STRUCT__entry(
302 __field(struct cachefiles_object *, obj )
303 __field(struct dentry *, de )
304 __field(enum fscache_why_object_killed, why )
307 TP_fast_assign(
308 __entry->obj = obj;
309 __entry->de = de;
310 __entry->why = why;
313 TP_printk("o=%p d=%p w=%s",
314 __entry->obj, __entry->de,
315 __print_symbolic(__entry->why, cachefiles_obj_kill_traces))
318 #endif /* _TRACE_CACHEFILES_H */
320 /* This part must be outside protection */
321 #include <trace/define_trace.h>