Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
58497703 HM |
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM nilfs2 | |
4 | ||
5 | #if !defined(_TRACE_NILFS2_H) || defined(TRACE_HEADER_MULTI_READ) | |
6 | #define _TRACE_NILFS2_H | |
7 | ||
8 | #include <linux/tracepoint.h> | |
9 | ||
10 | struct nilfs_sc_info; | |
11 | ||
12 | #define show_collection_stage(type) \ | |
13 | __print_symbolic(type, \ | |
14 | { NILFS_ST_INIT, "ST_INIT" }, \ | |
15 | { NILFS_ST_GC, "ST_GC" }, \ | |
16 | { NILFS_ST_FILE, "ST_FILE" }, \ | |
17 | { NILFS_ST_IFILE, "ST_IFILE" }, \ | |
18 | { NILFS_ST_CPFILE, "ST_CPFILE" }, \ | |
19 | { NILFS_ST_SUFILE, "ST_SUFILE" }, \ | |
20 | { NILFS_ST_DAT, "ST_DAT" }, \ | |
21 | { NILFS_ST_SR, "ST_SR" }, \ | |
22 | { NILFS_ST_DSYNC, "ST_DSYNC" }, \ | |
23 | { NILFS_ST_DONE, "ST_DONE"}) | |
24 | ||
25 | TRACE_EVENT(nilfs2_collection_stage_transition, | |
26 | ||
27 | TP_PROTO(struct nilfs_sc_info *sci), | |
28 | ||
29 | TP_ARGS(sci), | |
30 | ||
31 | TP_STRUCT__entry( | |
32 | __field(void *, sci) | |
33 | __field(int, stage) | |
34 | ), | |
35 | ||
36 | TP_fast_assign( | |
37 | __entry->sci = sci; | |
38 | __entry->stage = sci->sc_stage.scnt; | |
39 | ), | |
40 | ||
41 | TP_printk("sci = %p stage = %s", | |
42 | __entry->sci, | |
43 | show_collection_stage(__entry->stage)) | |
44 | ); | |
45 | ||
44fda114 HM |
46 | #ifndef TRACE_HEADER_MULTI_READ |
47 | enum nilfs2_transaction_transition_state { | |
48 | TRACE_NILFS2_TRANSACTION_BEGIN, | |
49 | TRACE_NILFS2_TRANSACTION_COMMIT, | |
50 | TRACE_NILFS2_TRANSACTION_ABORT, | |
51 | TRACE_NILFS2_TRANSACTION_TRYLOCK, | |
52 | TRACE_NILFS2_TRANSACTION_LOCK, | |
53 | TRACE_NILFS2_TRANSACTION_UNLOCK, | |
54 | }; | |
55 | #endif | |
56 | ||
57 | #define show_transaction_state(type) \ | |
58 | __print_symbolic(type, \ | |
59 | { TRACE_NILFS2_TRANSACTION_BEGIN, "BEGIN" }, \ | |
60 | { TRACE_NILFS2_TRANSACTION_COMMIT, "COMMIT" }, \ | |
61 | { TRACE_NILFS2_TRANSACTION_ABORT, "ABORT" }, \ | |
62 | { TRACE_NILFS2_TRANSACTION_TRYLOCK, "TRYLOCK" }, \ | |
63 | { TRACE_NILFS2_TRANSACTION_LOCK, "LOCK" }, \ | |
64 | { TRACE_NILFS2_TRANSACTION_UNLOCK, "UNLOCK" }) | |
65 | ||
66 | TRACE_EVENT(nilfs2_transaction_transition, | |
67 | TP_PROTO(struct super_block *sb, | |
68 | struct nilfs_transaction_info *ti, | |
69 | int count, | |
70 | unsigned int flags, | |
71 | enum nilfs2_transaction_transition_state state), | |
72 | ||
73 | TP_ARGS(sb, ti, count, flags, state), | |
74 | ||
75 | TP_STRUCT__entry( | |
76 | __field(void *, sb) | |
77 | __field(void *, ti) | |
78 | __field(int, count) | |
79 | __field(unsigned int, flags) | |
80 | __field(int, state) | |
81 | ), | |
82 | ||
83 | TP_fast_assign( | |
84 | __entry->sb = sb; | |
85 | __entry->ti = ti; | |
86 | __entry->count = count; | |
87 | __entry->flags = flags; | |
88 | __entry->state = state; | |
89 | ), | |
90 | ||
91 | TP_printk("sb = %p ti = %p count = %d flags = %x state = %s", | |
92 | __entry->sb, | |
93 | __entry->ti, | |
94 | __entry->count, | |
95 | __entry->flags, | |
96 | show_transaction_state(__entry->state)) | |
97 | ); | |
98 | ||
83eec5e6 HM |
99 | TRACE_EVENT(nilfs2_segment_usage_check, |
100 | TP_PROTO(struct inode *sufile, | |
101 | __u64 segnum, | |
102 | unsigned long cnt), | |
103 | ||
104 | TP_ARGS(sufile, segnum, cnt), | |
105 | ||
106 | TP_STRUCT__entry( | |
107 | __field(struct inode *, sufile) | |
108 | __field(__u64, segnum) | |
109 | __field(unsigned long, cnt) | |
110 | ), | |
111 | ||
112 | TP_fast_assign( | |
113 | __entry->sufile = sufile; | |
114 | __entry->segnum = segnum; | |
115 | __entry->cnt = cnt; | |
116 | ), | |
117 | ||
118 | TP_printk("sufile = %p segnum = %llu cnt = %lu", | |
119 | __entry->sufile, | |
120 | __entry->segnum, | |
121 | __entry->cnt) | |
122 | ); | |
123 | ||
124 | TRACE_EVENT(nilfs2_segment_usage_allocated, | |
125 | TP_PROTO(struct inode *sufile, | |
126 | __u64 segnum), | |
127 | ||
128 | TP_ARGS(sufile, segnum), | |
129 | ||
130 | TP_STRUCT__entry( | |
131 | __field(struct inode *, sufile) | |
132 | __field(__u64, segnum) | |
133 | ), | |
134 | ||
135 | TP_fast_assign( | |
136 | __entry->sufile = sufile; | |
137 | __entry->segnum = segnum; | |
138 | ), | |
139 | ||
140 | TP_printk("sufile = %p segnum = %llu", | |
141 | __entry->sufile, | |
142 | __entry->segnum) | |
143 | ); | |
144 | ||
145 | TRACE_EVENT(nilfs2_segment_usage_freed, | |
146 | TP_PROTO(struct inode *sufile, | |
147 | __u64 segnum), | |
148 | ||
149 | TP_ARGS(sufile, segnum), | |
150 | ||
151 | TP_STRUCT__entry( | |
152 | __field(struct inode *, sufile) | |
153 | __field(__u64, segnum) | |
154 | ), | |
155 | ||
156 | TP_fast_assign( | |
157 | __entry->sufile = sufile; | |
158 | __entry->segnum = segnum; | |
159 | ), | |
160 | ||
161 | TP_printk("sufile = %p segnum = %llu", | |
162 | __entry->sufile, | |
163 | __entry->segnum) | |
164 | ); | |
165 | ||
a9cd207c HM |
166 | TRACE_EVENT(nilfs2_mdt_insert_new_block, |
167 | TP_PROTO(struct inode *inode, | |
168 | unsigned long ino, | |
169 | unsigned long block), | |
170 | ||
171 | TP_ARGS(inode, ino, block), | |
172 | ||
173 | TP_STRUCT__entry( | |
174 | __field(struct inode *, inode) | |
175 | __field(unsigned long, ino) | |
176 | __field(unsigned long, block) | |
177 | ), | |
178 | ||
179 | TP_fast_assign( | |
180 | __entry->inode = inode; | |
181 | __entry->ino = ino; | |
182 | __entry->block = block; | |
183 | ), | |
184 | ||
185 | TP_printk("inode = %p ino = %lu block = %lu", | |
186 | __entry->inode, | |
187 | __entry->ino, | |
188 | __entry->block) | |
189 | ); | |
190 | ||
191 | TRACE_EVENT(nilfs2_mdt_submit_block, | |
192 | TP_PROTO(struct inode *inode, | |
193 | unsigned long ino, | |
194 | unsigned long blkoff, | |
ed451259 | 195 | enum req_op mode), |
a9cd207c HM |
196 | |
197 | TP_ARGS(inode, ino, blkoff, mode), | |
198 | ||
199 | TP_STRUCT__entry( | |
200 | __field(struct inode *, inode) | |
201 | __field(unsigned long, ino) | |
202 | __field(unsigned long, blkoff) | |
33580d66 BVA |
203 | /* |
204 | * Use field_struct() to avoid is_signed_type() on the | |
205 | * bitwise type enum req_op. | |
206 | */ | |
207 | __field_struct(enum req_op, mode) | |
a9cd207c HM |
208 | ), |
209 | ||
210 | TP_fast_assign( | |
211 | __entry->inode = inode; | |
212 | __entry->ino = ino; | |
213 | __entry->blkoff = blkoff; | |
214 | __entry->mode = mode; | |
215 | ), | |
216 | ||
217 | TP_printk("inode = %p ino = %lu blkoff = %lu mode = %x", | |
218 | __entry->inode, | |
219 | __entry->ino, | |
220 | __entry->blkoff, | |
221 | __entry->mode) | |
222 | ); | |
223 | ||
58497703 HM |
224 | #endif /* _TRACE_NILFS2_H */ |
225 | ||
226 | /* This part must be outside protection */ | |
227 | #undef TRACE_INCLUDE_FILE | |
228 | #define TRACE_INCLUDE_FILE nilfs2 | |
229 | #include <trace/define_trace.h> |