Branch data Line data Source code
1 : : #undef TRACE_SYSTEM
2 : : #define TRACE_SYSTEM jbd2
3 : :
4 : : #if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ)
5 : : #define _TRACE_JBD2_H
6 : :
7 : : #include <linux/jbd2.h>
8 : : #include <linux/tracepoint.h>
9 : :
10 : : struct transaction_chp_stats_s;
11 : : struct transaction_run_stats_s;
12 : :
13 [ # # # # ]: 0 : TRACE_EVENT(jbd2_checkpoint,
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # # # ]
[ # # ]
14 : :
15 : : TP_PROTO(journal_t *journal, int result),
16 : :
17 : : TP_ARGS(journal, result),
18 : :
19 : : TP_STRUCT__entry(
20 : : __field( dev_t, dev )
21 : : __field( int, result )
22 : : ),
23 : :
24 : : TP_fast_assign(
25 : : __entry->dev = journal->j_fs_dev->bd_dev;
26 : : __entry->result = result;
27 : : ),
28 : :
29 : : TP_printk("dev %d,%d result %d",
30 : : MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result)
31 : : );
32 : :
33 [ # # # # ]: 0 : DECLARE_EVENT_CLASS(jbd2_commit,
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
34 : :
35 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
36 : :
37 : : TP_ARGS(journal, commit_transaction),
38 : :
39 : : TP_STRUCT__entry(
40 : : __field( dev_t, dev )
41 : : __field( char, sync_commit )
42 : : __field( int, transaction )
43 : : ),
44 : :
45 : : TP_fast_assign(
46 : : __entry->dev = journal->j_fs_dev->bd_dev;
47 : : __entry->sync_commit = commit_transaction->t_synchronous_commit;
48 : : __entry->transaction = commit_transaction->t_tid;
49 : : ),
50 : :
51 : : TP_printk("dev %d,%d transaction %d sync %d",
52 : : MAJOR(__entry->dev), MINOR(__entry->dev),
53 : : __entry->transaction, __entry->sync_commit)
54 : : );
55 : :
56 [ - + # # ]: 20656 : DEFINE_EVENT(jbd2_commit, jbd2_start_commit,
[ # # ]
57 : :
58 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
59 : :
60 : : TP_ARGS(journal, commit_transaction)
61 : : );
62 : :
63 [ - + # # ]: 20656 : DEFINE_EVENT(jbd2_commit, jbd2_commit_locking,
[ # # ]
64 : :
65 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
66 : :
67 : : TP_ARGS(journal, commit_transaction)
68 : : );
69 : :
70 [ - + # # ]: 20656 : DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing,
[ # # ]
71 : :
72 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
73 : :
74 : : TP_ARGS(journal, commit_transaction)
75 : : );
76 : :
77 [ - + # # ]: 20656 : DEFINE_EVENT(jbd2_commit, jbd2_commit_logging,
[ # # ]
78 : :
79 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
80 : :
81 : : TP_ARGS(journal, commit_transaction)
82 : : );
83 : :
84 [ - + # # ]: 20656 : DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction,
[ # # ]
85 : :
86 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
87 : :
88 : : TP_ARGS(journal, commit_transaction)
89 : : );
90 : :
91 [ - + # # ]: 20656 : TRACE_EVENT(jbd2_end_commit,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
92 : : TP_PROTO(journal_t *journal, transaction_t *commit_transaction),
93 : :
94 : : TP_ARGS(journal, commit_transaction),
95 : :
96 : : TP_STRUCT__entry(
97 : : __field( dev_t, dev )
98 : : __field( char, sync_commit )
99 : : __field( int, transaction )
100 : : __field( int, head )
101 : : ),
102 : :
103 : : TP_fast_assign(
104 : : __entry->dev = journal->j_fs_dev->bd_dev;
105 : : __entry->sync_commit = commit_transaction->t_synchronous_commit;
106 : : __entry->transaction = commit_transaction->t_tid;
107 : : __entry->head = journal->j_tail_sequence;
108 : : ),
109 : :
110 : : TP_printk("dev %d,%d transaction %d sync %d head %d",
111 : : MAJOR(__entry->dev), MINOR(__entry->dev),
112 : : __entry->transaction, __entry->sync_commit, __entry->head)
113 : : );
114 : :
115 [ - + # # ]: 1030 : TRACE_EVENT(jbd2_submit_inode_data,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
116 : : TP_PROTO(struct inode *inode),
117 : :
118 : : TP_ARGS(inode),
119 : :
120 : : TP_STRUCT__entry(
121 : : __field( dev_t, dev )
122 : : __field( ino_t, ino )
123 : : ),
124 : :
125 : : TP_fast_assign(
126 : : __entry->dev = inode->i_sb->s_dev;
127 : : __entry->ino = inode->i_ino;
128 : : ),
129 : :
130 : : TP_printk("dev %d,%d ino %lu",
131 : : MAJOR(__entry->dev), MINOR(__entry->dev),
132 : : (unsigned long) __entry->ino)
133 : : );
134 : :
135 [ - + # # ]: 9664126 : TRACE_EVENT(jbd2_handle_start,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
136 : : TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
137 : : unsigned int line_no, int requested_blocks),
138 : :
139 : : TP_ARGS(dev, tid, type, line_no, requested_blocks),
140 : :
141 : : TP_STRUCT__entry(
142 : : __field( dev_t, dev )
143 : : __field( unsigned long, tid )
144 : : __field( unsigned int, type )
145 : : __field( unsigned int, line_no )
146 : : __field( int, requested_blocks)
147 : : ),
148 : :
149 : : TP_fast_assign(
150 : : __entry->dev = dev;
151 : : __entry->tid = tid;
152 : : __entry->type = type;
153 : : __entry->line_no = line_no;
154 : : __entry->requested_blocks = requested_blocks;
155 : : ),
156 : :
157 : : TP_printk("dev %d,%d tid %lu type %u line_no %u "
158 : : "requested_blocks %d",
159 : : MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
160 : : __entry->type, __entry->line_no, __entry->requested_blocks)
161 : : );
162 : :
163 [ - + # # ]: 2312 : TRACE_EVENT(jbd2_handle_extend,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
164 : : TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
165 : : unsigned int line_no, int buffer_credits,
166 : : int requested_blocks),
167 : :
168 : : TP_ARGS(dev, tid, type, line_no, buffer_credits, requested_blocks),
169 : :
170 : : TP_STRUCT__entry(
171 : : __field( dev_t, dev )
172 : : __field( unsigned long, tid )
173 : : __field( unsigned int, type )
174 : : __field( unsigned int, line_no )
175 : : __field( int, buffer_credits )
176 : : __field( int, requested_blocks)
177 : : ),
178 : :
179 : : TP_fast_assign(
180 : : __entry->dev = dev;
181 : : __entry->tid = tid;
182 : : __entry->type = type;
183 : : __entry->line_no = line_no;
184 : : __entry->buffer_credits = buffer_credits;
185 : : __entry->requested_blocks = requested_blocks;
186 : : ),
187 : :
188 : : TP_printk("dev %d,%d tid %lu type %u line_no %u "
189 : : "buffer_credits %d requested_blocks %d",
190 : : MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
191 : : __entry->type, __entry->line_no, __entry->buffer_credits,
192 : : __entry->requested_blocks)
193 : : );
194 : :
195 [ - + # # ]: 9662853 : TRACE_EVENT(jbd2_handle_stats,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
196 : : TP_PROTO(dev_t dev, unsigned long tid, unsigned int type,
197 : : unsigned int line_no, int interval, int sync,
198 : : int requested_blocks, int dirtied_blocks),
199 : :
200 : : TP_ARGS(dev, tid, type, line_no, interval, sync,
201 : : requested_blocks, dirtied_blocks),
202 : :
203 : : TP_STRUCT__entry(
204 : : __field( dev_t, dev )
205 : : __field( unsigned long, tid )
206 : : __field( unsigned int, type )
207 : : __field( unsigned int, line_no )
208 : : __field( int, interval )
209 : : __field( int, sync )
210 : : __field( int, requested_blocks)
211 : : __field( int, dirtied_blocks )
212 : : ),
213 : :
214 : : TP_fast_assign(
215 : : __entry->dev = dev;
216 : : __entry->tid = tid;
217 : : __entry->type = type;
218 : : __entry->line_no = line_no;
219 : : __entry->interval = interval;
220 : : __entry->sync = sync;
221 : : __entry->requested_blocks = requested_blocks;
222 : : __entry->dirtied_blocks = dirtied_blocks;
223 : : ),
224 : :
225 : : TP_printk("dev %d,%d tid %lu type %u line_no %u interval %d "
226 : : "sync %d requested_blocks %d dirtied_blocks %d",
227 : : MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
228 : : __entry->type, __entry->line_no, __entry->interval,
229 : : __entry->sync, __entry->requested_blocks,
230 : : __entry->dirtied_blocks)
231 : : );
232 : :
233 [ - + # # ]: 20656 : TRACE_EVENT(jbd2_run_stats,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
234 : : TP_PROTO(dev_t dev, unsigned long tid,
235 : : struct transaction_run_stats_s *stats),
236 : :
237 : : TP_ARGS(dev, tid, stats),
238 : :
239 : : TP_STRUCT__entry(
240 : : __field( dev_t, dev )
241 : : __field( unsigned long, tid )
242 : : __field( unsigned long, wait )
243 : : __field( unsigned long, request_delay )
244 : : __field( unsigned long, running )
245 : : __field( unsigned long, locked )
246 : : __field( unsigned long, flushing )
247 : : __field( unsigned long, logging )
248 : : __field( __u32, handle_count )
249 : : __field( __u32, blocks )
250 : : __field( __u32, blocks_logged )
251 : : ),
252 : :
253 : : TP_fast_assign(
254 : : __entry->dev = dev;
255 : : __entry->tid = tid;
256 : : __entry->wait = stats->rs_wait;
257 : : __entry->request_delay = stats->rs_request_delay;
258 : : __entry->running = stats->rs_running;
259 : : __entry->locked = stats->rs_locked;
260 : : __entry->flushing = stats->rs_flushing;
261 : : __entry->logging = stats->rs_logging;
262 : : __entry->handle_count = stats->rs_handle_count;
263 : : __entry->blocks = stats->rs_blocks;
264 : : __entry->blocks_logged = stats->rs_blocks_logged;
265 : : ),
266 : :
267 : : TP_printk("dev %d,%d tid %lu wait %u request_delay %u running %u "
268 : : "locked %u flushing %u logging %u handle_count %u "
269 : : "blocks %u blocks_logged %u",
270 : : MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
271 : : jiffies_to_msecs(__entry->wait),
272 : : jiffies_to_msecs(__entry->request_delay),
273 : : jiffies_to_msecs(__entry->running),
274 : : jiffies_to_msecs(__entry->locked),
275 : : jiffies_to_msecs(__entry->flushing),
276 : : jiffies_to_msecs(__entry->logging),
277 : : __entry->handle_count, __entry->blocks,
278 : : __entry->blocks_logged)
279 : : );
280 : :
281 [ # # # # ]: 20600 : TRACE_EVENT(jbd2_checkpoint_stats,
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ - # # ]
[ # # ]
282 : : TP_PROTO(dev_t dev, unsigned long tid,
283 : : struct transaction_chp_stats_s *stats),
284 : :
285 : : TP_ARGS(dev, tid, stats),
286 : :
287 : : TP_STRUCT__entry(
288 : : __field( dev_t, dev )
289 : : __field( unsigned long, tid )
290 : : __field( unsigned long, chp_time )
291 : : __field( __u32, forced_to_close )
292 : : __field( __u32, written )
293 : : __field( __u32, dropped )
294 : : ),
295 : :
296 : : TP_fast_assign(
297 : : __entry->dev = dev;
298 : : __entry->tid = tid;
299 : : __entry->chp_time = stats->cs_chp_time;
300 : : __entry->forced_to_close= stats->cs_forced_to_close;
301 : : __entry->written = stats->cs_written;
302 : : __entry->dropped = stats->cs_dropped;
303 : : ),
304 : :
305 : : TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u "
306 : : "written %u dropped %u",
307 : : MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid,
308 : : jiffies_to_msecs(__entry->chp_time),
309 : : __entry->forced_to_close, __entry->written, __entry->dropped)
310 : : );
311 : :
312 [ - + # # ]: 13 : TRACE_EVENT(jbd2_update_log_tail,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
313 : :
314 : : TP_PROTO(journal_t *journal, tid_t first_tid,
315 : : unsigned long block_nr, unsigned long freed),
316 : :
317 : : TP_ARGS(journal, first_tid, block_nr, freed),
318 : :
319 : : TP_STRUCT__entry(
320 : : __field( dev_t, dev )
321 : : __field( tid_t, tail_sequence )
322 : : __field( tid_t, first_tid )
323 : : __field(unsigned long, block_nr )
324 : : __field(unsigned long, freed )
325 : : ),
326 : :
327 : : TP_fast_assign(
328 : : __entry->dev = journal->j_fs_dev->bd_dev;
329 : : __entry->tail_sequence = journal->j_tail_sequence;
330 : : __entry->first_tid = first_tid;
331 : : __entry->block_nr = block_nr;
332 : : __entry->freed = freed;
333 : : ),
334 : :
335 : : TP_printk("dev %d,%d from %u to %u offset %lu freed %lu",
336 : : MAJOR(__entry->dev), MINOR(__entry->dev),
337 : : __entry->tail_sequence, __entry->first_tid,
338 : : __entry->block_nr, __entry->freed)
339 : : );
340 : :
341 [ - + # # ]: 13 : TRACE_EVENT(jbd2_write_superblock,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
342 : :
343 : : TP_PROTO(journal_t *journal, int write_op),
344 : :
345 : : TP_ARGS(journal, write_op),
346 : :
347 : : TP_STRUCT__entry(
348 : : __field( dev_t, dev )
349 : : __field( int, write_op )
350 : : ),
351 : :
352 : : TP_fast_assign(
353 : : __entry->dev = journal->j_fs_dev->bd_dev;
354 : : __entry->write_op = write_op;
355 : : ),
356 : :
357 : : TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev),
358 : : MINOR(__entry->dev), __entry->write_op)
359 : : );
360 : :
361 [ - + # # ]: 80 : TRACE_EVENT(jbd2_lock_buffer_stall,
[ # # ]
[ # # # # ]
[ # # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
362 : :
363 : : TP_PROTO(dev_t dev, unsigned long stall_ms),
364 : :
365 : : TP_ARGS(dev, stall_ms),
366 : :
367 : : TP_STRUCT__entry(
368 : : __field( dev_t, dev )
369 : : __field(unsigned long, stall_ms )
370 : : ),
371 : :
372 : : TP_fast_assign(
373 : : __entry->dev = dev;
374 : : __entry->stall_ms = stall_ms;
375 : : ),
376 : :
377 : : TP_printk("dev %d,%d stall_ms %lu",
378 : : MAJOR(__entry->dev), MINOR(__entry->dev),
379 : : __entry->stall_ms)
380 : : );
381 : :
382 : : #endif /* _TRACE_JBD2_H */
383 : :
384 : : /* This part must be outside protection */
385 : : #include <trace/define_trace.h>
|