blob: 16013b5588c6e54022cfecf3418c5c59feb82190 [file] [log] [blame]
Wengang Wang80a9a842011-02-21 11:13:14 +08001#undef TRACE_SYSTEM
2#define TRACE_SYSTEM ocfs2
3
4#if !defined(_TRACE_OCFS2_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_OCFS2_H
6
7#include <linux/tracepoint.h>
8
Tao Maa09d09b2011-02-22 08:21:10 +08009DECLARE_EVENT_CLASS(ocfs2__int,
10 TP_PROTO(int num),
11 TP_ARGS(num),
12 TP_STRUCT__entry(
13 __field(int, num)
14 ),
15 TP_fast_assign(
16 __entry->num = num;
17 ),
18 TP_printk("%d", __entry->num)
19);
20
21#define DEFINE_OCFS2_INT_EVENT(name) \
22DEFINE_EVENT(ocfs2__int, name, \
23 TP_PROTO(int num), \
24 TP_ARGS(num))
25
Tao Maa04733d2011-02-22 07:56:45 +080026DECLARE_EVENT_CLASS(ocfs2__uint,
27 TP_PROTO(unsigned int num),
28 TP_ARGS(num),
29 TP_STRUCT__entry(
30 __field( unsigned int, num )
31 ),
32 TP_fast_assign(
33 __entry->num = num;
34 ),
35 TP_printk("%u", __entry->num)
36);
37
38#define DEFINE_OCFS2_UINT_EVENT(name) \
39DEFINE_EVENT(ocfs2__uint, name, \
40 TP_PROTO(unsigned int num), \
41 TP_ARGS(num))
42
Tao Ma2f73e132011-02-22 08:22:33 +080043DECLARE_EVENT_CLASS(ocfs2__ull,
44 TP_PROTO(unsigned long long blkno),
45 TP_ARGS(blkno),
46 TP_STRUCT__entry(
47 __field(unsigned long long, blkno)
48 ),
49 TP_fast_assign(
50 __entry->blkno = blkno;
51 ),
52 TP_printk("%llu", __entry->blkno)
53);
54
55#define DEFINE_OCFS2_ULL_EVENT(name) \
56DEFINE_EVENT(ocfs2__ull, name, \
57 TP_PROTO(unsigned long long num), \
58 TP_ARGS(num))
59
Tao Maa09d09b2011-02-22 08:21:10 +080060DECLARE_EVENT_CLASS(ocfs2__int_int,
61 TP_PROTO(int value1, int value2),
62 TP_ARGS(value1, value2),
63 TP_STRUCT__entry(
64 __field(int, value1)
65 __field(int, value2)
66 ),
67 TP_fast_assign(
68 __entry->value1 = value1;
69 __entry->value2 = value2;
70 ),
71 TP_printk("%d %d", __entry->value1, __entry->value2)
72);
73
74#define DEFINE_OCFS2_INT_INT_EVENT(name) \
75DEFINE_EVENT(ocfs2__int_int, name, \
76 TP_PROTO(int val1, int val2), \
77 TP_ARGS(val1, val2))
78
Tao Ma2f73e132011-02-22 08:22:33 +080079DECLARE_EVENT_CLASS(ocfs2__uint_uint,
80 TP_PROTO(unsigned int value1, unsigned int value2),
81 TP_ARGS(value1, value2),
82 TP_STRUCT__entry(
83 __field(unsigned int, value1)
84 __field(unsigned int, value2)
85 ),
86 TP_fast_assign(
87 __entry->value1 = value1;
88 __entry->value2 = value2;
89 ),
90 TP_printk("%u %u", __entry->value1, __entry->value2)
91);
92
93#define DEFINE_OCFS2_UINT_UINT_EVENT(name) \
94DEFINE_EVENT(ocfs2__uint_uint, name, \
95 TP_PROTO(unsigned int val1, unsigned int val2), \
96 TP_ARGS(val1, val2))
97
Tao Maa09d09b2011-02-22 08:21:10 +080098DECLARE_EVENT_CLASS(ocfs2__ull_uint,
99 TP_PROTO(unsigned long long value1, unsigned int value2),
100 TP_ARGS(value1, value2),
101 TP_STRUCT__entry(
102 __field(unsigned long long, value1)
103 __field(unsigned int, value2)
104 ),
105 TP_fast_assign(
106 __entry->value1 = value1;
107 __entry->value2 = value2;
108 ),
109 TP_printk("%llu %u", __entry->value1, __entry->value2)
110);
111
112#define DEFINE_OCFS2_ULL_UINT_EVENT(name) \
113DEFINE_EVENT(ocfs2__ull_uint, name, \
114 TP_PROTO(unsigned long long val1, unsigned int val2), \
115 TP_ARGS(val1, val2))
116
Tao Ma2f73e132011-02-22 08:22:33 +0800117DECLARE_EVENT_CLASS(ocfs2__ull_ull,
118 TP_PROTO(unsigned long long value1, unsigned long long value2),
119 TP_ARGS(value1, value2),
120 TP_STRUCT__entry(
121 __field(unsigned long long, value1)
122 __field(unsigned long long, value2)
123 ),
124 TP_fast_assign(
125 __entry->value1 = value1;
126 __entry->value2 = value2;
127 ),
128 TP_printk("%llu %llu", __entry->value1, __entry->value2)
129);
130
131#define DEFINE_OCFS2_ULL_ULL_EVENT(name) \
132DEFINE_EVENT(ocfs2__ull_ull, name, \
133 TP_PROTO(unsigned long long val1, unsigned long long val2), \
134 TP_ARGS(val1, val2))
135
Tao Ma198aac22011-02-22 08:20:04 +0800136DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint,
137 TP_PROTO(unsigned long long value1,
138 unsigned long long value2, unsigned int value3),
139 TP_ARGS(value1, value2, value3),
140 TP_STRUCT__entry(
141 __field(unsigned long long, value1)
142 __field(unsigned long long, value2)
143 __field(unsigned int, value3)
144 ),
145 TP_fast_assign(
146 __entry->value1 = value1;
147 __entry->value2 = value2;
148 __entry->value3 = value3;
149 ),
150 TP_printk("%llu %llu %u",
151 __entry->value1, __entry->value2, __entry->value3)
152);
153
154#define DEFINE_OCFS2_ULL_ULL_UINT_EVENT(name) \
155DEFINE_EVENT(ocfs2__ull_ull_uint, name, \
156 TP_PROTO(unsigned long long val1, \
157 unsigned long long val2, unsigned int val3), \
158 TP_ARGS(val1, val2, val3))
159
Tao Ma2f73e132011-02-22 08:22:33 +0800160DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint,
161 TP_PROTO(unsigned long long value1,
162 unsigned int value2, unsigned int value3),
163 TP_ARGS(value1, value2, value3),
164 TP_STRUCT__entry(
165 __field(unsigned long long, value1)
166 __field(unsigned int, value2)
167 __field(unsigned int, value3)
168 ),
169 TP_fast_assign(
170 __entry->value1 = value1;
171 __entry->value2 = value2;
172 __entry->value3 = value3;
173 ),
174 TP_printk("%llu %u %u", __entry->value1,
175 __entry->value2, __entry->value3)
176);
177
178#define DEFINE_OCFS2_ULL_UINT_UINT_EVENT(name) \
179DEFINE_EVENT(ocfs2__ull_uint_uint, name, \
180 TP_PROTO(unsigned long long val1, \
181 unsigned int val2, unsigned int val3), \
182 TP_ARGS(val1, val2, val3))
183
Tao Maa04733d2011-02-22 07:56:45 +0800184DECLARE_EVENT_CLASS(ocfs2__uint_uint_uint,
185 TP_PROTO(unsigned int value1, unsigned int value2,
186 unsigned int value3),
187 TP_ARGS(value1, value2, value3),
188 TP_STRUCT__entry(
189 __field( unsigned int, value1 )
190 __field( unsigned int, value2 )
191 __field( unsigned int, value3 )
192 ),
193 TP_fast_assign(
194 __entry->value1 = value1;
195 __entry->value2 = value2;
196 __entry->value3 = value3;
197 ),
198 TP_printk("%u %u %u", __entry->value1, __entry->value2, __entry->value3)
199);
200
201#define DEFINE_OCFS2_UINT_UINT_UINT_EVENT(name) \
202DEFINE_EVENT(ocfs2__uint_uint_uint, name, \
203 TP_PROTO(unsigned int value1, unsigned int value2, \
204 unsigned int value3), \
205 TP_ARGS(value1, value2, value3))
206
Tao Ma468eedd2011-02-22 22:14:41 +0800207DECLARE_EVENT_CLASS(ocfs2__ull_ull_ull,
208 TP_PROTO(unsigned long long value1,
209 unsigned long long value2, unsigned long long value3),
210 TP_ARGS(value1, value2, value3),
211 TP_STRUCT__entry(
212 __field(unsigned long long, value1)
213 __field(unsigned long long, value2)
214 __field(unsigned long long, value3)
215 ),
216 TP_fast_assign(
217 __entry->value1 = value1;
218 __entry->value2 = value2;
219 __entry->value3 = value3;
220 ),
221 TP_printk("%llu %llu %llu",
222 __entry->value1, __entry->value2, __entry->value3)
223);
224
225#define DEFINE_OCFS2_ULL_ULL_ULL_EVENT(name) \
226DEFINE_EVENT(ocfs2__ull_ull_ull, name, \
227 TP_PROTO(unsigned long long value1, unsigned long long value2, \
228 unsigned long long value3), \
229 TP_ARGS(value1, value2, value3))
230
Tao Maa04733d2011-02-22 07:56:45 +0800231DECLARE_EVENT_CLASS(ocfs2__ull_int_int_int,
232 TP_PROTO(unsigned long long ull, int value1, int value2, int value3),
233 TP_ARGS(ull, value1, value2, value3),
234 TP_STRUCT__entry(
235 __field( unsigned long long, ull )
236 __field( int, value1 )
237 __field( int, value2 )
238 __field( int, value3 )
239 ),
240 TP_fast_assign(
241 __entry->ull = ull;
242 __entry->value1 = value1;
243 __entry->value2 = value2;
244 __entry->value3 = value3;
245 ),
246 TP_printk("%llu %d %d %d",
247 __entry->ull, __entry->value1,
248 __entry->value2, __entry->value3)
249);
250
251#define DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(name) \
252DEFINE_EVENT(ocfs2__ull_int_int_int, name, \
253 TP_PROTO(unsigned long long ull, int value1, \
254 int value2, int value3), \
255 TP_ARGS(ull, value1, value2, value3))
256
Tao Ma2f73e132011-02-22 08:22:33 +0800257DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint_uint,
258 TP_PROTO(unsigned long long ull, unsigned int value1,
259 unsigned int value2, unsigned int value3),
260 TP_ARGS(ull, value1, value2, value3),
261 TP_STRUCT__entry(
262 __field(unsigned long long, ull)
263 __field(unsigned int, value1)
264 __field(unsigned int, value2)
265 __field(unsigned int, value3)
266 ),
267 TP_fast_assign(
268 __entry->ull = ull;
269 __entry->value1 = value1;
270 __entry->value2 = value2;
271 __entry->value3 = value3;
272 ),
273 TP_printk("%llu %u %u %u",
274 __entry->ull, __entry->value1,
275 __entry->value2, __entry->value3)
276);
277
278#define DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(name) \
279DEFINE_EVENT(ocfs2__ull_uint_uint_uint, name, \
280 TP_PROTO(unsigned long long ull, unsigned int value1, \
281 unsigned int value2, unsigned int value3), \
282 TP_ARGS(ull, value1, value2, value3))
283
Tao Maa09d09b2011-02-22 08:21:10 +0800284/* Trace events for fs/ocfs2/alloc.c. */
285DECLARE_EVENT_CLASS(ocfs2__btree_ops,
286 TP_PROTO(unsigned long long owner,\
287 unsigned int value1, unsigned int value2),
288 TP_ARGS(owner, value1, value2),
289 TP_STRUCT__entry(
290 __field(unsigned long long, owner)
291 __field(unsigned int, value1)
292 __field(unsigned int, value2)
293 ),
294 TP_fast_assign(
295 __entry->owner = owner;
296 __entry->value1 = value1;
297 __entry->value2 = value2;
298 ),
299 TP_printk("%llu %u %u",
300 __entry->owner, __entry->value1, __entry->value2)
301);
302
303#define DEFINE_OCFS2_BTREE_EVENT(name) \
304DEFINE_EVENT(ocfs2__btree_ops, name, \
305 TP_PROTO(unsigned long long owner, \
306 unsigned int value1, unsigned int value2), \
307 TP_ARGS(owner, value1, value2))
308
309DEFINE_OCFS2_BTREE_EVENT(ocfs2_adjust_rightmost_branch);
310
311DEFINE_OCFS2_BTREE_EVENT(ocfs2_rotate_tree_right);
312
313DEFINE_OCFS2_BTREE_EVENT(ocfs2_append_rec_to_path);
314
315DEFINE_OCFS2_BTREE_EVENT(ocfs2_insert_extent_start);
316
317DEFINE_OCFS2_BTREE_EVENT(ocfs2_add_clusters_in_btree);
318
319DEFINE_OCFS2_INT_EVENT(ocfs2_num_free_extents);
320
321DEFINE_OCFS2_INT_EVENT(ocfs2_complete_edge_insert);
322
323TRACE_EVENT(ocfs2_grow_tree,
324 TP_PROTO(unsigned long long owner, int depth),
325 TP_ARGS(owner, depth),
326 TP_STRUCT__entry(
327 __field(unsigned long long, owner)
328 __field(int, depth)
329 ),
330 TP_fast_assign(
331 __entry->owner = owner;
332 __entry->depth = depth;
333 ),
334 TP_printk("%llu %d", __entry->owner, __entry->depth)
335);
336
337TRACE_EVENT(ocfs2_rotate_subtree,
338 TP_PROTO(int subtree_root, unsigned long long blkno,
339 int depth),
340 TP_ARGS(subtree_root, blkno, depth),
341 TP_STRUCT__entry(
342 __field(int, subtree_root)
343 __field(unsigned long long, blkno)
344 __field(int, depth)
345 ),
346 TP_fast_assign(
347 __entry->subtree_root = subtree_root;
348 __entry->blkno = blkno;
349 __entry->depth = depth;
350 ),
351 TP_printk("%d %llu %d", __entry->subtree_root,
352 __entry->blkno, __entry->depth)
353);
354
355TRACE_EVENT(ocfs2_insert_extent,
356 TP_PROTO(unsigned int ins_appending, unsigned int ins_contig,
357 int ins_contig_index, int free_records, int ins_tree_depth),
358 TP_ARGS(ins_appending, ins_contig, ins_contig_index, free_records,
359 ins_tree_depth),
360 TP_STRUCT__entry(
361 __field(unsigned int, ins_appending)
362 __field(unsigned int, ins_contig)
363 __field(int, ins_contig_index)
364 __field(int, free_records)
365 __field(int, ins_tree_depth)
366 ),
367 TP_fast_assign(
368 __entry->ins_appending = ins_appending;
369 __entry->ins_contig = ins_contig;
370 __entry->ins_contig_index = ins_contig_index;
371 __entry->free_records = free_records;
372 __entry->ins_tree_depth = ins_tree_depth;
373 ),
374 TP_printk("%u %u %d %d %d",
375 __entry->ins_appending, __entry->ins_contig,
376 __entry->ins_contig_index, __entry->free_records,
377 __entry->ins_tree_depth)
378);
379
380TRACE_EVENT(ocfs2_split_extent,
381 TP_PROTO(int split_index, unsigned int c_contig_type,
382 unsigned int c_has_empty_extent,
383 unsigned int c_split_covers_rec),
384 TP_ARGS(split_index, c_contig_type,
385 c_has_empty_extent, c_split_covers_rec),
386 TP_STRUCT__entry(
387 __field(int, split_index)
388 __field(unsigned int, c_contig_type)
389 __field(unsigned int, c_has_empty_extent)
390 __field(unsigned int, c_split_covers_rec)
391 ),
392 TP_fast_assign(
393 __entry->split_index = split_index;
394 __entry->c_contig_type = c_contig_type;
395 __entry->c_has_empty_extent = c_has_empty_extent;
396 __entry->c_split_covers_rec = c_split_covers_rec;
397 ),
398 TP_printk("%d %u %u %u", __entry->split_index, __entry->c_contig_type,
399 __entry->c_has_empty_extent, __entry->c_split_covers_rec)
400);
401
402TRACE_EVENT(ocfs2_remove_extent,
403 TP_PROTO(unsigned long long owner, unsigned int cpos,
404 unsigned int len, int index,
405 unsigned int e_cpos, unsigned int clusters),
406 TP_ARGS(owner, cpos, len, index, e_cpos, clusters),
407 TP_STRUCT__entry(
408 __field(unsigned long long, owner)
409 __field(unsigned int, cpos)
410 __field(unsigned int, len)
411 __field(int, index)
412 __field(unsigned int, e_cpos)
413 __field(unsigned int, clusters)
414 ),
415 TP_fast_assign(
416 __entry->owner = owner;
417 __entry->cpos = cpos;
418 __entry->len = len;
419 __entry->index = index;
420 __entry->e_cpos = e_cpos;
421 __entry->clusters = clusters;
422 ),
423 TP_printk("%llu %u %u %d %u %u",
424 __entry->owner, __entry->cpos, __entry->len, __entry->index,
425 __entry->e_cpos, __entry->clusters)
426);
427
428TRACE_EVENT(ocfs2_commit_truncate,
429 TP_PROTO(unsigned long long ino, unsigned int new_cpos,
430 unsigned int clusters, unsigned int depth),
431 TP_ARGS(ino, new_cpos, clusters, depth),
432 TP_STRUCT__entry(
433 __field(unsigned long long, ino)
434 __field(unsigned int, new_cpos)
435 __field(unsigned int, clusters)
436 __field(unsigned int, depth)
437 ),
438 TP_fast_assign(
439 __entry->ino = ino;
440 __entry->new_cpos = new_cpos;
441 __entry->clusters = clusters;
442 __entry->depth = depth;
443 ),
444 TP_printk("%llu %u %u %u",
445 __entry->ino, __entry->new_cpos,
446 __entry->clusters, __entry->depth)
447);
448
449TRACE_EVENT(ocfs2_validate_extent_block,
450 TP_PROTO(unsigned long long blkno),
451 TP_ARGS(blkno),
452 TP_STRUCT__entry(
453 __field(unsigned long long, blkno)
454 ),
455 TP_fast_assign(
456 __entry->blkno = blkno;
457 ),
458 TP_printk("%llu ", __entry->blkno)
459);
460
461TRACE_EVENT(ocfs2_rotate_leaf,
462 TP_PROTO(unsigned int insert_cpos, int insert_index,
463 int has_empty, int next_free,
464 unsigned int l_count),
465 TP_ARGS(insert_cpos, insert_index, has_empty,
466 next_free, l_count),
467 TP_STRUCT__entry(
468 __field(unsigned int, insert_cpos)
469 __field(int, insert_index)
470 __field(int, has_empty)
471 __field(int, next_free)
472 __field(unsigned int, l_count)
473 ),
474 TP_fast_assign(
475 __entry->insert_cpos = insert_cpos;
476 __entry->insert_index = insert_index;
477 __entry->has_empty = has_empty;
478 __entry->next_free = next_free;
479 __entry->l_count = l_count;
480 ),
481 TP_printk("%u %d %d %d %u", __entry->insert_cpos,
482 __entry->insert_index, __entry->has_empty,
483 __entry->next_free, __entry->l_count)
484);
485
486TRACE_EVENT(ocfs2_add_clusters_in_btree_ret,
487 TP_PROTO(int status, int reason, int err),
488 TP_ARGS(status, reason, err),
489 TP_STRUCT__entry(
490 __field(int, status)
491 __field(int, reason)
492 __field(int, err)
493 ),
494 TP_fast_assign(
495 __entry->status = status;
496 __entry->reason = reason;
497 __entry->err = err;
498 ),
499 TP_printk("%d %d %d", __entry->status,
500 __entry->reason, __entry->err)
501);
502
503TRACE_EVENT(ocfs2_mark_extent_written,
504 TP_PROTO(unsigned long long owner, unsigned int cpos,
505 unsigned int len, unsigned int phys),
506 TP_ARGS(owner, cpos, len, phys),
507 TP_STRUCT__entry(
508 __field(unsigned long long, owner)
509 __field(unsigned int, cpos)
510 __field(unsigned int, len)
511 __field(unsigned int, phys)
512 ),
513 TP_fast_assign(
514 __entry->owner = owner;
515 __entry->cpos = cpos;
516 __entry->len = len;
517 __entry->phys = phys;
518 ),
519 TP_printk("%llu %u %u %u",
520 __entry->owner, __entry->cpos,
521 __entry->len, __entry->phys)
522);
523
524DECLARE_EVENT_CLASS(ocfs2__truncate_log_ops,
525 TP_PROTO(unsigned long long blkno, int index,
526 unsigned int start, unsigned int num),
527 TP_ARGS(blkno, index, start, num),
528 TP_STRUCT__entry(
529 __field(unsigned long long, blkno)
530 __field(int, index)
531 __field(unsigned int, start)
532 __field(unsigned int, num)
533 ),
534 TP_fast_assign(
535 __entry->blkno = blkno;
536 __entry->index = index;
537 __entry->start = start;
538 __entry->num = num;
539 ),
540 TP_printk("%llu %d %u %u",
541 __entry->blkno, __entry->index,
542 __entry->start, __entry->num)
543);
544
545#define DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(name) \
546DEFINE_EVENT(ocfs2__truncate_log_ops, name, \
547 TP_PROTO(unsigned long long blkno, int index, \
548 unsigned int start, unsigned int num), \
549 TP_ARGS(blkno, index, start, num))
550
551DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_truncate_log_append);
552
553DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_replay_truncate_records);
554
555DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_flush_truncate_log);
556
557DEFINE_OCFS2_INT_EVENT(ocfs2_begin_truncate_log_recovery);
558
559DEFINE_OCFS2_INT_EVENT(ocfs2_truncate_log_recovery_num);
560
561DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_complete_truncate_log_recovery);
562
563DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_free_cached_blocks);
564
565DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_cache_cluster_dealloc);
566
567DEFINE_OCFS2_INT_INT_EVENT(ocfs2_run_deallocs);
568
569TRACE_EVENT(ocfs2_cache_block_dealloc,
570 TP_PROTO(int type, int slot, unsigned long long suballoc,
571 unsigned long long blkno, unsigned int bit),
572 TP_ARGS(type, slot, suballoc, blkno, bit),
573 TP_STRUCT__entry(
574 __field(int, type)
575 __field(int, slot)
576 __field(unsigned long long, suballoc)
577 __field(unsigned long long, blkno)
578 __field(unsigned int, bit)
579 ),
580 TP_fast_assign(
581 __entry->type = type;
582 __entry->slot = slot;
583 __entry->suballoc = suballoc;
584 __entry->blkno = blkno;
585 __entry->bit = bit;
586 ),
587 TP_printk("%d %d %llu %llu %u",
588 __entry->type, __entry->slot, __entry->suballoc,
589 __entry->blkno, __entry->bit)
590);
591
592/* End of trace events for fs/ocfs2/alloc.c. */
Wengang Wang80a9a842011-02-21 11:13:14 +0800593
Tao Maa04733d2011-02-22 07:56:45 +0800594/* Trace events for fs/ocfs2/localalloc.c. */
595
596DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_la_set_sizes);
597
598DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_alloc_should_use_local);
599
600DEFINE_OCFS2_INT_EVENT(ocfs2_load_local_alloc);
601
602DEFINE_OCFS2_INT_EVENT(ocfs2_begin_local_alloc_recovery);
603
604DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_reserve_local_alloc_bits);
605
606DEFINE_OCFS2_UINT_EVENT(ocfs2_local_alloc_count_bits);
607
608DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits_search_bitmap);
609
610DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits);
611
612DEFINE_OCFS2_INT_INT_EVENT(ocfs2_sync_local_to_main);
613
614TRACE_EVENT(ocfs2_sync_local_to_main_free,
615 TP_PROTO(int count, int bit, unsigned long long start_blk,
616 unsigned long long blkno),
617 TP_ARGS(count, bit, start_blk, blkno),
618 TP_STRUCT__entry(
619 __field(int, count)
620 __field(int, bit)
621 __field(unsigned long long, start_blk)
622 __field(unsigned long long, blkno)
623 ),
624 TP_fast_assign(
625 __entry->count = count;
626 __entry->bit = bit;
627 __entry->start_blk = start_blk;
628 __entry->blkno = blkno;
629 ),
630 TP_printk("%d %d %llu %llu",
631 __entry->count, __entry->bit, __entry->start_blk,
632 __entry->blkno)
633);
634
635DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_new_window);
636
637DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_local_alloc_new_window_result);
638
639/* End of trace events for fs/ocfs2/localalloc.c. */
Tao Ma2f73e132011-02-22 08:22:33 +0800640
Tao Maa5438702011-02-22 08:24:01 +0800641/* Trace events for fs/ocfs2/resize.c. */
642
643DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_update_last_group_and_inode);
644
645DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_group_extend);
646
647DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_group_add);
648
649/* End of trace events for fs/ocfs2/resize.c. */
650
Tao Ma2f73e132011-02-22 08:22:33 +0800651/* Trace events for fs/ocfs2/suballoc.c. */
652
653DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_group_descriptor);
654
655DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_contig);
656
657DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_discontig);
658
659DEFINE_OCFS2_ULL_EVENT(ocfs2_block_group_alloc);
660
661DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_nospc);
662
663DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_no_new_group);
664
665DEFINE_OCFS2_ULL_EVENT(ocfs2_reserve_new_inode_new_group);
666
667DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_set_bits);
668
669TRACE_EVENT(ocfs2_relink_block_group,
670 TP_PROTO(unsigned long long i_blkno, unsigned int chain,
671 unsigned long long bg_blkno,
672 unsigned long long prev_blkno),
673 TP_ARGS(i_blkno, chain, bg_blkno, prev_blkno),
674 TP_STRUCT__entry(
675 __field(unsigned long long, i_blkno)
676 __field(unsigned int, chain)
677 __field(unsigned long long, bg_blkno)
678 __field(unsigned long long, prev_blkno)
679 ),
680 TP_fast_assign(
681 __entry->i_blkno = i_blkno;
682 __entry->chain = chain;
683 __entry->bg_blkno = bg_blkno;
684 __entry->prev_blkno = prev_blkno;
685 ),
686 TP_printk("%llu %u %llu %llu",
687 __entry->i_blkno, __entry->chain, __entry->bg_blkno,
688 __entry->prev_blkno)
689);
690
691DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_cluster_group_search_wrong_max_bits);
692
693DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cluster_group_search_max_block);
694
695DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_block_group_search_max_block);
696
697DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_search_chain_begin);
698
699DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_succ);
700
701DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_end);
702
703DEFINE_OCFS2_UINT_EVENT(ocfs2_claim_suballoc_bits);
704
705DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_claim_new_inode_at_loc);
706
707DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_clear_bits);
708
709TRACE_EVENT(ocfs2_free_suballoc_bits,
710 TP_PROTO(unsigned long long inode, unsigned long long group,
711 unsigned int start_bit, unsigned int count),
712 TP_ARGS(inode, group, start_bit, count),
713 TP_STRUCT__entry(
714 __field(unsigned long long, inode)
715 __field(unsigned long long, group)
716 __field(unsigned int, start_bit)
717 __field(unsigned int, count)
718 ),
719 TP_fast_assign(
720 __entry->inode = inode;
721 __entry->group = group;
722 __entry->start_bit = start_bit;
723 __entry->count = count;
724 ),
725 TP_printk("%llu %llu %u %u", __entry->inode, __entry->group,
726 __entry->start_bit, __entry->count)
727);
728
729TRACE_EVENT(ocfs2_free_clusters,
730 TP_PROTO(unsigned long long bg_blkno, unsigned long long start_blk,
731 unsigned int start_bit, unsigned int count),
732 TP_ARGS(bg_blkno, start_blk, start_bit, count),
733 TP_STRUCT__entry(
734 __field(unsigned long long, bg_blkno)
735 __field(unsigned long long, start_blk)
736 __field(unsigned int, start_bit)
737 __field(unsigned int, count)
738 ),
739 TP_fast_assign(
740 __entry->bg_blkno = bg_blkno;
741 __entry->start_blk = start_blk;
742 __entry->start_bit = start_bit;
743 __entry->count = count;
744 ),
745 TP_printk("%llu %llu %u %u", __entry->bg_blkno, __entry->start_blk,
746 __entry->start_bit, __entry->count)
747);
748
749DEFINE_OCFS2_ULL_EVENT(ocfs2_get_suballoc_slot_bit);
750
751DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_test_suballoc_bit);
752
753DEFINE_OCFS2_ULL_EVENT(ocfs2_test_inode_bit);
754
755/* End of trace events for fs/ocfs2/suballoc.c. */
Tao Ma198aac22011-02-22 08:20:04 +0800756
757/* Trace events for fs/ocfs2/refcounttree.c. */
758
759DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_refcount_block);
760
761DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_refcount_trees);
762
763DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree);
764
765DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree_blkno);
766
767DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_change_refcount_rec);
768
769DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_expand_inline_ref_root);
770
771DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_divide_leaf_refcount_block);
772
773DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_new_leaf_refcount_block);
774
775DECLARE_EVENT_CLASS(ocfs2__refcount_tree_ops,
776 TP_PROTO(unsigned long long blkno, int index,
777 unsigned long long cpos,
778 unsigned int clusters, unsigned int refcount),
779 TP_ARGS(blkno, index, cpos, clusters, refcount),
780 TP_STRUCT__entry(
781 __field(unsigned long long, blkno)
782 __field(int, index)
783 __field(unsigned long long, cpos)
784 __field(unsigned int, clusters)
785 __field(unsigned int, refcount)
786 ),
787 TP_fast_assign(
788 __entry->blkno = blkno;
789 __entry->index = index;
790 __entry->cpos = cpos;
791 __entry->clusters = clusters;
792 __entry->refcount = refcount;
793 ),
794 TP_printk("%llu %d %llu %u %u", __entry->blkno, __entry->index,
795 __entry->cpos, __entry->clusters, __entry->refcount)
796);
797
798#define DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(name) \
799DEFINE_EVENT(ocfs2__refcount_tree_ops, name, \
800 TP_PROTO(unsigned long long blkno, int index, \
801 unsigned long long cpos, \
802 unsigned int count, unsigned int refcount), \
803 TP_ARGS(blkno, index, cpos, count, refcount))
804
805DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_insert_refcount_rec);
806
807TRACE_EVENT(ocfs2_split_refcount_rec,
808 TP_PROTO(unsigned long long cpos,
809 unsigned int clusters, unsigned int refcount,
810 unsigned long long split_cpos,
811 unsigned int split_clusters, unsigned int split_refcount),
812 TP_ARGS(cpos, clusters, refcount,
813 split_cpos, split_clusters, split_refcount),
814 TP_STRUCT__entry(
815 __field(unsigned long long, cpos)
816 __field(unsigned int, clusters)
817 __field(unsigned int, refcount)
818 __field(unsigned long long, split_cpos)
819 __field(unsigned int, split_clusters)
820 __field(unsigned int, split_refcount)
821 ),
822 TP_fast_assign(
823 __entry->cpos = cpos;
824 __entry->clusters = clusters;
825 __entry->refcount = refcount;
826 __entry->split_cpos = split_cpos;
827 __entry->split_clusters = split_clusters;
828 __entry->split_refcount = split_refcount;
829 ),
830 TP_printk("%llu %u %u %llu %u %u",
831 __entry->cpos, __entry->clusters, __entry->refcount,
832 __entry->split_cpos, __entry->split_clusters,
833 __entry->split_refcount)
834);
835
836DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_split_refcount_rec_insert);
837
838DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_increase_refcount_begin);
839
840DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_change);
841
842DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_increase_refcount_insert);
843
844DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_split);
845
846DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_remove_refcount_extent);
847
848DEFINE_OCFS2_ULL_EVENT(ocfs2_restore_refcount_block);
849
850DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_decrease_refcount_rec);
851
852TRACE_EVENT(ocfs2_decrease_refcount,
853 TP_PROTO(unsigned long long owner,
854 unsigned long long cpos,
855 unsigned int len, int delete),
856 TP_ARGS(owner, cpos, len, delete),
857 TP_STRUCT__entry(
858 __field(unsigned long long, owner)
859 __field(unsigned long long, cpos)
860 __field(unsigned int, len)
861 __field(int, delete)
862 ),
863 TP_fast_assign(
864 __entry->owner = owner;
865 __entry->cpos = cpos;
866 __entry->len = len;
867 __entry->delete = delete;
868 ),
869 TP_printk("%llu %llu %u %d",
870 __entry->owner, __entry->cpos, __entry->len, __entry->delete)
871);
872
873DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_mark_extent_refcounted);
874
875DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_calc_refcount_meta_credits);
876
877TRACE_EVENT(ocfs2_calc_refcount_meta_credits_iterate,
878 TP_PROTO(int recs_add, unsigned long long cpos,
879 unsigned int clusters, unsigned long long r_cpos,
880 unsigned int r_clusters, unsigned int refcount, int index),
881 TP_ARGS(recs_add, cpos, clusters, r_cpos, r_clusters, refcount, index),
882 TP_STRUCT__entry(
883 __field(int, recs_add)
884 __field(unsigned long long, cpos)
885 __field(unsigned int, clusters)
886 __field(unsigned long long, r_cpos)
887 __field(unsigned int, r_clusters)
888 __field(unsigned int, refcount)
889 __field(int, index)
890 ),
891 TP_fast_assign(
892 __entry->recs_add = recs_add;
893 __entry->cpos = cpos;
894 __entry->clusters = clusters;
895 __entry->r_cpos = r_cpos;
896 __entry->r_clusters = r_clusters;
897 __entry->refcount = refcount;
898 __entry->index = index;
899 ),
900 TP_printk("%d %llu %u %llu %u %u %d",
901 __entry->recs_add, __entry->cpos, __entry->clusters,
902 __entry->r_cpos, __entry->r_clusters,
903 __entry->refcount, __entry->index)
904);
905
906DEFINE_OCFS2_INT_INT_EVENT(ocfs2_add_refcount_flag);
907
908DEFINE_OCFS2_INT_INT_EVENT(ocfs2_prepare_refcount_change_for_del);
909
910DEFINE_OCFS2_INT_INT_EVENT(ocfs2_lock_refcount_allocators);
911
912DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_page);
913
914DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_jbd);
915
916TRACE_EVENT(ocfs2_clear_ext_refcount,
917 TP_PROTO(unsigned long long ino, unsigned int cpos,
918 unsigned int len, unsigned int p_cluster,
919 unsigned int ext_flags),
920 TP_ARGS(ino, cpos, len, p_cluster, ext_flags),
921 TP_STRUCT__entry(
922 __field(unsigned long long, ino)
923 __field(unsigned int, cpos)
924 __field(unsigned int, len)
925 __field(unsigned int, p_cluster)
926 __field(unsigned int, ext_flags)
927 ),
928 TP_fast_assign(
929 __entry->ino = ino;
930 __entry->cpos = cpos;
931 __entry->len = len;
932 __entry->p_cluster = p_cluster;
933 __entry->ext_flags = ext_flags;
934 ),
935 TP_printk("%llu %u %u %u %u",
936 __entry->ino, __entry->cpos, __entry->len,
937 __entry->p_cluster, __entry->ext_flags)
938);
939
940TRACE_EVENT(ocfs2_replace_clusters,
941 TP_PROTO(unsigned long long ino, unsigned int cpos,
942 unsigned int old, unsigned int new, unsigned int len,
943 unsigned int ext_flags),
944 TP_ARGS(ino, cpos, old, new, len, ext_flags),
945 TP_STRUCT__entry(
946 __field(unsigned long long, ino)
947 __field(unsigned int, cpos)
948 __field(unsigned int, old)
949 __field(unsigned int, new)
950 __field(unsigned int, len)
951 __field(unsigned int, ext_flags)
952 ),
953 TP_fast_assign(
954 __entry->ino = ino;
955 __entry->cpos = cpos;
956 __entry->old = old;
957 __entry->new = new;
958 __entry->len = len;
959 __entry->ext_flags = ext_flags;
960 ),
961 TP_printk("%llu %u %u %u %u %u",
962 __entry->ino, __entry->cpos, __entry->old, __entry->new,
963 __entry->len, __entry->ext_flags)
964);
965
966DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_make_clusters_writable);
967
968TRACE_EVENT(ocfs2_refcount_cow_hunk,
969 TP_PROTO(unsigned long long ino, unsigned int cpos,
970 unsigned int write_len, unsigned int max_cpos,
971 unsigned int cow_start, unsigned int cow_len),
972 TP_ARGS(ino, cpos, write_len, max_cpos, cow_start, cow_len),
973 TP_STRUCT__entry(
974 __field(unsigned long long, ino)
975 __field(unsigned int, cpos)
976 __field(unsigned int, write_len)
977 __field(unsigned int, max_cpos)
978 __field(unsigned int, cow_start)
979 __field(unsigned int, cow_len)
980 ),
981 TP_fast_assign(
982 __entry->ino = ino;
983 __entry->cpos = cpos;
984 __entry->write_len = write_len;
985 __entry->max_cpos = max_cpos;
986 __entry->cow_start = cow_start;
987 __entry->cow_len = cow_len;
988 ),
989 TP_printk("%llu %u %u %u %u %u",
990 __entry->ino, __entry->cpos, __entry->write_len,
991 __entry->max_cpos, __entry->cow_start, __entry->cow_len)
992);
993
994/* End of trace events for fs/ocfs2/refcounttree.c. */
Tao Ma95581562011-02-22 21:33:59 +0800995
996/* Trace events for fs/ocfs2/aops.c. */
997
998DECLARE_EVENT_CLASS(ocfs2__get_block,
999 TP_PROTO(unsigned long long ino, unsigned long long iblock,
1000 void *bh_result, int create),
1001 TP_ARGS(ino, iblock, bh_result, create),
1002 TP_STRUCT__entry(
1003 __field(unsigned long long, ino)
1004 __field(unsigned long long, iblock)
1005 __field(void *, bh_result)
1006 __field(int, create)
1007 ),
1008 TP_fast_assign(
1009 __entry->ino = ino;
1010 __entry->iblock = iblock;
1011 __entry->bh_result = bh_result;
1012 __entry->create = create;
1013 ),
1014 TP_printk("%llu %llu %p %d",
1015 __entry->ino, __entry->iblock,
1016 __entry->bh_result, __entry->create)
1017);
1018
1019#define DEFINE_OCFS2_GET_BLOCK_EVENT(name) \
1020DEFINE_EVENT(ocfs2__get_block, name, \
1021 TP_PROTO(unsigned long long ino, unsigned long long iblock, \
1022 void *bh_result, int create), \
1023 TP_ARGS(ino, iblock, bh_result, create))
1024
1025DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_symlink_get_block);
1026
1027DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_get_block);
1028
1029DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_get_block_end);
1030
1031DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_readpage);
1032
1033DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_writepage);
1034
1035DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_bmap);
1036
1037TRACE_EVENT(ocfs2_try_to_write_inline_data,
1038 TP_PROTO(unsigned long long ino, unsigned int len,
1039 unsigned long long pos, unsigned int flags),
1040 TP_ARGS(ino, len, pos, flags),
1041 TP_STRUCT__entry(
1042 __field(unsigned long long, ino)
1043 __field(unsigned int, len)
1044 __field(unsigned long long, pos)
1045 __field(unsigned int, flags)
1046 ),
1047 TP_fast_assign(
1048 __entry->ino = ino;
1049 __entry->len = len;
1050 __entry->pos = pos;
1051 __entry->flags = flags;
1052 ),
1053 TP_printk("%llu %u %llu 0x%x",
1054 __entry->ino, __entry->len, __entry->pos, __entry->flags)
1055);
1056
1057TRACE_EVENT(ocfs2_write_begin_nolock,
1058 TP_PROTO(unsigned long long ino,
1059 long long i_size, unsigned int i_clusters,
1060 unsigned long long pos, unsigned int len,
1061 unsigned int flags, void *page,
1062 unsigned int clusters, unsigned int extents_to_split),
1063 TP_ARGS(ino, i_size, i_clusters, pos, len, flags,
1064 page, clusters, extents_to_split),
1065 TP_STRUCT__entry(
1066 __field(unsigned long long, ino)
1067 __field(long long, i_size)
1068 __field(unsigned int, i_clusters)
1069 __field(unsigned long long, pos)
1070 __field(unsigned int, len)
1071 __field(unsigned int, flags)
1072 __field(void *, page)
1073 __field(unsigned int, clusters)
1074 __field(unsigned int, extents_to_split)
1075 ),
1076 TP_fast_assign(
1077 __entry->ino = ino;
1078 __entry->i_size = i_size;
1079 __entry->i_clusters = i_clusters;
1080 __entry->pos = pos;
1081 __entry->len = len;
1082 __entry->flags = flags;
1083 __entry->page = page;
1084 __entry->clusters = clusters;
1085 __entry->extents_to_split = extents_to_split;
1086 ),
1087 TP_printk("%llu %lld %u %llu %u %u %p %u %u",
1088 __entry->ino, __entry->i_size, __entry->i_clusters,
1089 __entry->pos, __entry->len,
1090 __entry->flags, __entry->page, __entry->clusters,
1091 __entry->extents_to_split)
1092);
1093
1094TRACE_EVENT(ocfs2_write_end_inline,
1095 TP_PROTO(unsigned long long ino,
1096 unsigned long long pos, unsigned int copied,
1097 unsigned int id_count, unsigned int features),
1098 TP_ARGS(ino, pos, copied, id_count, features),
1099 TP_STRUCT__entry(
1100 __field(unsigned long long, ino)
1101 __field(unsigned long long, pos)
1102 __field(unsigned int, copied)
1103 __field(unsigned int, id_count)
1104 __field(unsigned int, features)
1105 ),
1106 TP_fast_assign(
1107 __entry->ino = ino;
1108 __entry->pos = pos;
1109 __entry->copied = copied;
1110 __entry->id_count = id_count;
1111 __entry->features = features;
1112 ),
1113 TP_printk("%llu %llu %u %u %u",
1114 __entry->ino, __entry->pos, __entry->copied,
1115 __entry->id_count, __entry->features)
1116);
1117
1118/* End of trace events for fs/ocfs2/aops.c. */
Tao Ma614a9e82011-02-22 21:59:46 +08001119
1120/* Trace events for fs/ocfs2/mmap.c. */
1121
1122TRACE_EVENT(ocfs2_fault,
1123 TP_PROTO(unsigned long long ino,
1124 void *area, void *page, unsigned long pgoff),
1125 TP_ARGS(ino, area, page, pgoff),
1126 TP_STRUCT__entry(
1127 __field(unsigned long long, ino)
1128 __field(void *, area)
1129 __field(void *, page)
1130 __field(unsigned long, pgoff)
1131 ),
1132 TP_fast_assign(
1133 __entry->ino = ino;
1134 __entry->area = area;
1135 __entry->page = page;
1136 __entry->pgoff = pgoff;
1137 ),
1138 TP_printk("%llu %p %p %lu",
1139 __entry->ino, __entry->area, __entry->page, __entry->pgoff)
1140);
1141
1142/* End of trace events for fs/ocfs2/mmap.c. */
1143
Tao Ma468eedd2011-02-22 22:14:41 +08001144/* Trace events for fs/ocfs2/file.c. */
1145
1146DECLARE_EVENT_CLASS(ocfs2__file_ops,
1147 TP_PROTO(void *inode, void *file, void *dentry,
1148 unsigned long long ino,
1149 unsigned int d_len, const unsigned char *d_name,
1150 unsigned long long para),
1151 TP_ARGS(inode, file, dentry, ino, d_len, d_name, para),
1152 TP_STRUCT__entry(
1153 __field(void *, inode)
1154 __field(void *, file)
1155 __field(void *, dentry)
1156 __field(unsigned long long, ino)
1157 __field(unsigned int, d_len)
1158 __string(d_name, d_name)
1159 __field(unsigned long long, para)
1160 ),
1161 TP_fast_assign(
1162 __entry->inode = inode;
1163 __entry->file = file;
1164 __entry->dentry = dentry;
1165 __entry->ino = ino;
1166 __entry->d_len = d_len;
1167 __assign_str(d_name, d_name);
1168 __entry->para = para;
1169 ),
1170 TP_printk("%p %p %p %llu %llu %.*s", __entry->inode, __entry->file,
1171 __entry->dentry, __entry->ino, __entry->para,
1172 __entry->d_len, __get_str(d_name))
1173);
1174
1175#define DEFINE_OCFS2_FILE_OPS(name) \
1176DEFINE_EVENT(ocfs2__file_ops, name, \
1177TP_PROTO(void *inode, void *file, void *dentry, \
1178 unsigned long long ino, \
1179 unsigned int d_len, const unsigned char *d_name, \
1180 unsigned long long mode), \
1181 TP_ARGS(inode, file, dentry, ino, d_len, d_name, mode))
1182
1183DEFINE_OCFS2_FILE_OPS(ocfs2_file_open);
1184
1185DEFINE_OCFS2_FILE_OPS(ocfs2_file_release);
1186
1187DEFINE_OCFS2_FILE_OPS(ocfs2_sync_file);
1188
1189DEFINE_OCFS2_FILE_OPS(ocfs2_file_aio_write);
1190
1191DEFINE_OCFS2_FILE_OPS(ocfs2_file_splice_write);
1192
1193DEFINE_OCFS2_FILE_OPS(ocfs2_file_splice_read);
1194
1195DEFINE_OCFS2_FILE_OPS(ocfs2_file_aio_read);
1196
1197DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_truncate_file);
1198
1199DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_truncate_file_error);
1200
1201TRACE_EVENT(ocfs2_extend_allocation,
1202 TP_PROTO(unsigned long long ip_blkno, unsigned long long size,
1203 unsigned int clusters, unsigned int clusters_to_add,
1204 int why, int restart_func),
1205 TP_ARGS(ip_blkno, size, clusters, clusters_to_add, why, restart_func),
1206 TP_STRUCT__entry(
1207 __field(unsigned long long, ip_blkno)
1208 __field(unsigned long long, size)
1209 __field(unsigned int, clusters)
1210 __field(unsigned int, clusters_to_add)
1211 __field(int, why)
1212 __field(int, restart_func)
1213 ),
1214 TP_fast_assign(
1215 __entry->ip_blkno = ip_blkno;
1216 __entry->size = size;
1217 __entry->clusters = clusters;
1218 __entry->clusters_to_add = clusters_to_add;
1219 __entry->why = why;
1220 __entry->restart_func = restart_func;
1221 ),
1222 TP_printk("%llu %llu %u %u %d %d",
1223 __entry->ip_blkno, __entry->size, __entry->clusters,
1224 __entry->clusters_to_add, __entry->why, __entry->restart_func)
1225);
1226
1227TRACE_EVENT(ocfs2_extend_allocation_end,
1228 TP_PROTO(unsigned long long ino,
1229 unsigned int di_clusters, unsigned long long di_size,
1230 unsigned int ip_clusters, unsigned long long i_size),
1231 TP_ARGS(ino, di_clusters, di_size, ip_clusters, i_size),
1232 TP_STRUCT__entry(
1233 __field(unsigned long long, ino)
1234 __field(unsigned int, di_clusters)
1235 __field(unsigned long long, di_size)
1236 __field(unsigned int, ip_clusters)
1237 __field(unsigned long long, i_size)
1238 ),
1239 TP_fast_assign(
1240 __entry->ino = ino;
1241 __entry->di_clusters = di_clusters;
1242 __entry->di_size = di_size;
1243 __entry->ip_clusters = ip_clusters;
1244 __entry->i_size = i_size;
1245 ),
1246 TP_printk("%llu %u %llu %u %llu", __entry->ino, __entry->di_clusters,
1247 __entry->di_size, __entry->ip_clusters, __entry->i_size)
1248);
1249
1250TRACE_EVENT(ocfs2_write_zero_page,
1251 TP_PROTO(unsigned long long ino,
1252 unsigned long long abs_from, unsigned long long abs_to,
1253 unsigned long index, unsigned int zero_from,
1254 unsigned int zero_to),
1255 TP_ARGS(ino, abs_from, abs_to, index, zero_from, zero_to),
1256 TP_STRUCT__entry(
1257 __field(unsigned long long, ino)
1258 __field(unsigned long long, abs_from)
1259 __field(unsigned long long, abs_to)
1260 __field(unsigned long, index)
1261 __field(unsigned int, zero_from)
1262 __field(unsigned int, zero_to)
1263 ),
1264 TP_fast_assign(
1265 __entry->ino = ino;
1266 __entry->abs_from = abs_from;
1267 __entry->abs_to = abs_to;
1268 __entry->index = index;
1269 __entry->zero_from = zero_from;
1270 __entry->zero_to = zero_to;
1271 ),
1272 TP_printk("%llu %llu %llu %lu %u %u", __entry->ino,
1273 __entry->abs_from, __entry->abs_to,
1274 __entry->index, __entry->zero_from, __entry->zero_to)
1275);
1276
1277DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend_range);
1278
1279DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend);
1280
1281TRACE_EVENT(ocfs2_setattr,
1282 TP_PROTO(void *inode, void *dentry,
1283 unsigned long long ino,
1284 unsigned int d_len, const unsigned char *d_name,
1285 unsigned int ia_valid, unsigned int ia_mode,
1286 unsigned int ia_uid, unsigned int ia_gid),
1287 TP_ARGS(inode, dentry, ino, d_len, d_name,
1288 ia_valid, ia_mode, ia_uid, ia_gid),
1289 TP_STRUCT__entry(
1290 __field(void *, inode)
1291 __field(void *, dentry)
1292 __field(unsigned long long, ino)
1293 __field(unsigned int, d_len)
1294 __string(d_name, d_name)
1295 __field(unsigned int, ia_valid)
1296 __field(unsigned int, ia_mode)
1297 __field(unsigned int, ia_uid)
1298 __field(unsigned int, ia_gid)
1299 ),
1300 TP_fast_assign(
1301 __entry->inode = inode;
1302 __entry->dentry = dentry;
1303 __entry->ino = ino;
1304 __entry->d_len = d_len;
1305 __assign_str(d_name, d_name);
1306 __entry->ia_valid = ia_valid;
1307 __entry->ia_mode = ia_mode;
1308 __entry->ia_uid = ia_uid;
1309 __entry->ia_gid = ia_gid;
1310 ),
1311 TP_printk("%p %p %llu %.*s %u %u %u %u", __entry->inode,
1312 __entry->dentry, __entry->ino, __entry->d_len,
1313 __get_str(d_name), __entry->ia_valid, __entry->ia_mode,
1314 __entry->ia_uid, __entry->ia_gid)
1315);
1316
1317DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_write_remove_suid);
1318
1319DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_partial_clusters);
1320
1321DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range1);
1322
1323DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range2);
1324
1325DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_remove_inode_range);
1326
1327TRACE_EVENT(ocfs2_prepare_inode_for_write,
1328 TP_PROTO(unsigned long long ino, unsigned long long saved_pos,
1329 int appending, unsigned long count,
1330 int *direct_io, int *has_refcount),
1331 TP_ARGS(ino, saved_pos, appending, count, direct_io, has_refcount),
1332 TP_STRUCT__entry(
1333 __field(unsigned long long, ino)
1334 __field(unsigned long long, saved_pos)
1335 __field(int, appending)
1336 __field(unsigned long, count)
1337 __field(int, direct_io)
1338 __field(int, has_refcount)
1339 ),
1340 TP_fast_assign(
1341 __entry->ino = ino;
1342 __entry->saved_pos = saved_pos;
1343 __entry->appending = appending;
1344 __entry->count = count;
1345 __entry->direct_io = direct_io ? *direct_io : -1;
1346 __entry->has_refcount = has_refcount ? *has_refcount : -1;
1347 ),
1348 TP_printk("%llu %llu %d %lu %d %d", __entry->ino,
1349 __entry->saved_pos, __entry->appending, __entry->count,
1350 __entry->direct_io, __entry->has_refcount)
1351);
1352
1353DEFINE_OCFS2_INT_EVENT(generic_file_aio_read_ret);
1354
1355/* End of trace events for fs/ocfs2/file.c. */
1356
Wengang Wang80a9a842011-02-21 11:13:14 +08001357#endif /* _TRACE_OCFS2_H */
1358
1359/* This part must be outside protection */
1360#undef TRACE_INCLUDE_PATH
1361#define TRACE_INCLUDE_PATH .
1362#define TRACE_INCLUDE_FILE ocfs2_trace
1363#include <trace/define_trace.h>