Fix: ext4 instrumentation for 4.2 kernels
[lttng-modules.git] / instrumentation / events / lttng-module / ext4.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM ext4
3
4 #if !defined(LTTNG_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define LTTNG_TRACE_EXT4_H
6
7 #include "../../../probes/lttng-tracepoint-event.h"
8 #include <linux/writeback.h>
9 #include <linux/version.h>
10
11 #ifndef _TRACE_EXT4_DEF_
12 #define _TRACE_EXT4_DEF_
13 struct ext4_allocation_context;
14 struct ext4_allocation_request;
15 struct ext4_prealloc_space;
16 struct ext4_inode_info;
17 struct mpage_da_data;
18 struct ext4_map_blocks;
19 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
20 struct ext4_extent;
21 #endif
22 #endif
23
24 #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
25 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
26 #define TP_MODE_T __u16
27 #else
28 #define TP_MODE_T umode_t
29 #endif
30
31 LTTNG_TRACEPOINT_EVENT(ext4_free_inode,
32 TP_PROTO(struct inode *inode),
33
34 TP_ARGS(inode),
35
36 TP_STRUCT__entry(
37 __field( dev_t, dev )
38 __field( ino_t, ino )
39 __field( uid_t, uid )
40 __field( gid_t, gid )
41 __field( __u64, blocks )
42 __field( TP_MODE_T, mode )
43 ),
44
45 TP_fast_assign(
46 tp_assign(dev, inode->i_sb->s_dev)
47 tp_assign(ino, inode->i_ino)
48 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
49 tp_assign(uid, i_uid_read(inode))
50 tp_assign(gid, i_gid_read(inode))
51 #else
52 tp_assign(uid, inode->i_uid)
53 tp_assign(gid, inode->i_gid)
54 #endif
55 tp_assign(blocks, inode->i_blocks)
56 tp_assign(mode, inode->i_mode)
57 ),
58
59 TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu",
60 MAJOR(__entry->dev), MINOR(__entry->dev),
61 (unsigned long) __entry->ino, __entry->mode,
62 __entry->uid, __entry->gid, __entry->blocks)
63 )
64
65 LTTNG_TRACEPOINT_EVENT(ext4_request_inode,
66 TP_PROTO(struct inode *dir, int mode),
67
68 TP_ARGS(dir, mode),
69
70 TP_STRUCT__entry(
71 __field( dev_t, dev )
72 __field( ino_t, dir )
73 __field( TP_MODE_T, mode )
74 ),
75
76 TP_fast_assign(
77 tp_assign(dev, dir->i_sb->s_dev)
78 tp_assign(dir, dir->i_ino)
79 tp_assign(mode, mode)
80 ),
81
82 TP_printk("dev %d,%d dir %lu mode 0%o",
83 MAJOR(__entry->dev), MINOR(__entry->dev),
84 (unsigned long) __entry->dir, __entry->mode)
85 )
86
87 LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode,
88 TP_PROTO(struct inode *inode, struct inode *dir, int mode),
89
90 TP_ARGS(inode, dir, mode),
91
92 TP_STRUCT__entry(
93 __field( dev_t, dev )
94 __field( ino_t, ino )
95 __field( ino_t, dir )
96 __field( TP_MODE_T, mode )
97 ),
98
99 TP_fast_assign(
100 tp_assign(dev, inode->i_sb->s_dev)
101 tp_assign(ino, inode->i_ino)
102 tp_assign(dir, dir->i_ino)
103 tp_assign(mode, mode)
104 ),
105
106 TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
107 MAJOR(__entry->dev), MINOR(__entry->dev),
108 (unsigned long) __entry->ino,
109 (unsigned long) __entry->dir, __entry->mode)
110 )
111
112 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
113 LTTNG_TRACEPOINT_EVENT(ext4_evict_inode,
114 TP_PROTO(struct inode *inode),
115
116 TP_ARGS(inode),
117
118 TP_STRUCT__entry(
119 __field( dev_t, dev )
120 __field( ino_t, ino )
121 __field( int, nlink )
122 ),
123
124 TP_fast_assign(
125 tp_assign(dev, inode->i_sb->s_dev)
126 tp_assign(ino, inode->i_ino)
127 tp_assign(nlink, inode->i_nlink)
128 ),
129
130 TP_printk("dev %d,%d ino %lu nlink %d",
131 MAJOR(__entry->dev), MINOR(__entry->dev),
132 (unsigned long) __entry->ino, __entry->nlink)
133 )
134
135 LTTNG_TRACEPOINT_EVENT(ext4_drop_inode,
136 TP_PROTO(struct inode *inode, int drop),
137
138 TP_ARGS(inode, drop),
139
140 TP_STRUCT__entry(
141 __field( dev_t, dev )
142 __field( ino_t, ino )
143 __field( int, drop )
144 ),
145
146 TP_fast_assign(
147 tp_assign(dev, inode->i_sb->s_dev)
148 tp_assign(ino, inode->i_ino)
149 tp_assign(drop, drop)
150 ),
151
152 TP_printk("dev %d,%d ino %lu drop %d",
153 MAJOR(__entry->dev), MINOR(__entry->dev),
154 (unsigned long) __entry->ino, __entry->drop)
155 )
156
157 LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty,
158 TP_PROTO(struct inode *inode, unsigned long IP),
159
160 TP_ARGS(inode, IP),
161
162 TP_STRUCT__entry(
163 __field( dev_t, dev )
164 __field( ino_t, ino )
165 __field(unsigned long, ip )
166 ),
167
168 TP_fast_assign(
169 tp_assign(dev, inode->i_sb->s_dev)
170 tp_assign(ino, inode->i_ino)
171 tp_assign(ip, IP)
172 ),
173
174 TP_printk("dev %d,%d ino %lu caller %pF",
175 MAJOR(__entry->dev), MINOR(__entry->dev),
176 (unsigned long) __entry->ino, (void *)__entry->ip)
177 )
178
179 LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate,
180 TP_PROTO(struct inode *inode, loff_t new_size),
181
182 TP_ARGS(inode, new_size),
183
184 TP_STRUCT__entry(
185 __field( dev_t, dev )
186 __field( ino_t, ino )
187 __field( loff_t, new_size )
188 ),
189
190 TP_fast_assign(
191 tp_assign(dev, inode->i_sb->s_dev)
192 tp_assign(ino, inode->i_ino)
193 tp_assign(new_size, new_size)
194 ),
195
196 TP_printk("dev %d,%d ino %lu new_size %lld",
197 MAJOR(__entry->dev), MINOR(__entry->dev),
198 (unsigned long) __entry->ino,
199 __entry->new_size)
200 )
201 #endif
202
203 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin,
204
205 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
206 unsigned int flags),
207
208 TP_ARGS(inode, pos, len, flags),
209
210 TP_STRUCT__entry(
211 __field( dev_t, dev )
212 __field( ino_t, ino )
213 __field( loff_t, pos )
214 __field( unsigned int, len )
215 __field( unsigned int, flags )
216 ),
217
218 TP_fast_assign(
219 tp_assign(dev, inode->i_sb->s_dev)
220 tp_assign(ino, inode->i_ino)
221 tp_assign(pos, pos)
222 tp_assign(len, len)
223 tp_assign(flags, flags)
224 ),
225
226 TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u",
227 MAJOR(__entry->dev), MINOR(__entry->dev),
228 (unsigned long) __entry->ino,
229 __entry->pos, __entry->len, __entry->flags)
230 )
231
232 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin,
233
234 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
235 unsigned int flags),
236
237 TP_ARGS(inode, pos, len, flags)
238 )
239
240 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_da_write_begin,
241
242 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
243 unsigned int flags),
244
245 TP_ARGS(inode, pos, len, flags)
246 )
247
248 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end,
249 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
250 unsigned int copied),
251
252 TP_ARGS(inode, pos, len, copied),
253
254 TP_STRUCT__entry(
255 __field( dev_t, dev )
256 __field( ino_t, ino )
257 __field( loff_t, pos )
258 __field( unsigned int, len )
259 __field( unsigned int, copied )
260 ),
261
262 TP_fast_assign(
263 tp_assign(dev, inode->i_sb->s_dev)
264 tp_assign(ino, inode->i_ino)
265 tp_assign(pos, pos)
266 tp_assign(len, len)
267 tp_assign(copied, copied)
268 ),
269
270 TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u",
271 MAJOR(__entry->dev), MINOR(__entry->dev),
272 (unsigned long) __entry->ino,
273 __entry->pos, __entry->len, __entry->copied)
274 )
275
276 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_ordered_write_end,
277
278 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
279 unsigned int copied),
280
281 TP_ARGS(inode, pos, len, copied)
282 )
283
284 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_writeback_write_end,
285
286 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
287 unsigned int copied),
288
289 TP_ARGS(inode, pos, len, copied)
290 )
291
292 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_journalled_write_end,
293
294 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
295 unsigned int copied),
296
297 TP_ARGS(inode, pos, len, copied)
298 )
299
300 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_da_write_end,
301
302 TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
303 unsigned int copied),
304
305 TP_ARGS(inode, pos, len, copied)
306 )
307
308 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40))
309 LTTNG_TRACEPOINT_EVENT(ext4_writepage,
310 TP_PROTO(struct inode *inode, struct page *page),
311
312 TP_ARGS(inode, page),
313
314 TP_STRUCT__entry(
315 __field( dev_t, dev )
316 __field( ino_t, ino )
317 __field( pgoff_t, index )
318
319 ),
320
321 TP_fast_assign(
322 tp_assign(dev, inode->i_sb->s_dev)
323 tp_assign(ino, inode->i_ino)
324 tp_assign(index, page->index)
325 ),
326
327 TP_printk("dev %d,%d ino %lu page_index %lu",
328 MAJOR(__entry->dev), MINOR(__entry->dev),
329 (unsigned long) __entry->ino, __entry->index)
330 )
331 #endif
332
333 LTTNG_TRACEPOINT_EVENT(ext4_da_writepages,
334 TP_PROTO(struct inode *inode, struct writeback_control *wbc),
335
336 TP_ARGS(inode, wbc),
337
338 TP_STRUCT__entry(
339 __field( dev_t, dev )
340 __field( ino_t, ino )
341 __field( long, nr_to_write )
342 __field( long, pages_skipped )
343 __field( loff_t, range_start )
344 __field( loff_t, range_end )
345 __field( pgoff_t, writeback_index )
346 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
347 __field( int, sync_mode )
348 #endif
349 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
350 __field( char, nonblocking )
351 #endif
352 __field( char, for_kupdate )
353 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
354 __field( char, for_reclaim )
355 #endif
356 __field( char, range_cyclic )
357 ),
358
359 TP_fast_assign(
360 tp_assign(dev, inode->i_sb->s_dev)
361 tp_assign(ino, inode->i_ino)
362 tp_assign(nr_to_write, wbc->nr_to_write)
363 tp_assign(pages_skipped, wbc->pages_skipped)
364 tp_assign(range_start, wbc->range_start)
365 tp_assign(range_end, wbc->range_end)
366 tp_assign(writeback_index, inode->i_mapping->writeback_index)
367 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
368 tp_assign(sync_mode, wbc->sync_mode)
369 #endif
370 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
371 tp_assign(nonblocking, wbc->nonblocking)
372 #endif
373 tp_assign(for_kupdate, wbc->for_kupdate)
374 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39))
375 tp_assign(for_reclaim, wbc->for_reclaim)
376 #endif
377 tp_assign(range_cyclic, wbc->range_cyclic)
378 ),
379
380 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
381 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
382 "range_start %lld range_end %lld sync_mode %d "
383 "for_kupdate %d range_cyclic %d writeback_index %lu",
384 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
385 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
386 "range_start %llu range_end %llu "
387 "for_kupdate %d for_reclaim %d "
388 "range_cyclic %d writeback_index %lu",
389 #else
390 TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
391 "range_start %llu range_end %llu "
392 "nonblocking %d for_kupdate %d for_reclaim %d "
393 "range_cyclic %d writeback_index %lu",
394 #endif
395 MAJOR(__entry->dev), MINOR(__entry->dev),
396 (unsigned long) __entry->ino, __entry->nr_to_write,
397 __entry->pages_skipped, __entry->range_start,
398 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
399 __entry->range_end, __entry->sync_mode,
400 __entry->for_kupdate, __entry->range_cyclic,
401 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
402 __entry->range_end,
403 __entry->for_kupdate, __entry->for_reclaim,
404 __entry->range_cyclic,
405 #else
406 __entry->range_end, __entry->nonblocking,
407 __entry->for_kupdate, __entry->for_reclaim,
408 __entry->range_cyclic,
409 #endif
410 (unsigned long) __entry->writeback_index)
411 )
412
413 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
414
415 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
416 TP_PROTO(struct inode *inode, pgoff_t first_page,
417 struct writeback_control *wbc),
418
419 TP_ARGS(inode, first_page, wbc),
420
421 TP_STRUCT__entry(
422 __field( dev_t, dev )
423 __field( ino_t, ino )
424 __field( pgoff_t, first_page )
425 __field( long, nr_to_write )
426 __field( int, sync_mode )
427 ),
428
429 TP_fast_assign(
430 tp_assign(dev, inode->i_sb->s_dev)
431 tp_assign(ino, inode->i_ino)
432 tp_assign(first_page, first_page)
433 tp_assign(nr_to_write, wbc->nr_to_write)
434 tp_assign(sync_mode, wbc->sync_mode)
435 ),
436
437 TP_printk("dev %d,%d ino %lu first_page %lu nr_to_write %ld "
438 "sync_mode %d",
439 MAJOR(__entry->dev), MINOR(__entry->dev),
440 (unsigned long) __entry->ino, __entry->first_page,
441 __entry->nr_to_write, __entry->sync_mode)
442 )
443
444 #else
445
446 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages,
447 TP_PROTO(struct inode *inode, struct mpage_da_data *mpd),
448
449 TP_ARGS(inode, mpd),
450
451 TP_STRUCT__entry(
452 __field( dev_t, dev )
453 __field( ino_t, ino )
454 __field( __u64, b_blocknr )
455 __field( __u32, b_size )
456 __field( __u32, b_state )
457 __field( unsigned long, first_page )
458 __field( int, io_done )
459 __field( int, pages_written )
460 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
461 __field( int, sync_mode )
462 #endif
463 ),
464
465 TP_fast_assign(
466 tp_assign(dev, inode->i_sb->s_dev)
467 tp_assign(ino, inode->i_ino)
468 tp_assign(b_blocknr, mpd->b_blocknr)
469 tp_assign(b_size, mpd->b_size)
470 tp_assign(b_state, mpd->b_state)
471 tp_assign(first_page, mpd->first_page)
472 tp_assign(io_done, mpd->io_done)
473 tp_assign(pages_written, mpd->pages_written)
474 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
475 tp_assign(sync_mode, mpd->wbc->sync_mode)
476 #endif
477 ),
478
479 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
480 TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
481 "first_page %lu io_done %d pages_written %d sync_mode %d",
482 #else
483 TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x "
484 "first_page %lu io_done %d pages_written %d",
485 #endif
486 MAJOR(__entry->dev), MINOR(__entry->dev),
487 (unsigned long) __entry->ino,
488 __entry->b_blocknr, __entry->b_size,
489 __entry->b_state, __entry->first_page,
490 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
491 __entry->io_done, __entry->pages_written,
492 __entry->sync_mode
493 #else
494 __entry->io_done, __entry->pages_written
495 #endif
496 )
497 )
498
499 #endif
500
501 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
502
503 LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent,
504 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map),
505
506 TP_ARGS(inode, map),
507
508 TP_STRUCT__entry(
509 __field( dev_t, dev )
510 __field( ino_t, ino )
511 __field( __u64, lblk )
512 __field( __u32, len )
513 __field( __u32, flags )
514 ),
515
516 TP_fast_assign(
517 tp_assign(dev, inode->i_sb->s_dev)
518 tp_assign(ino, inode->i_ino)
519 tp_assign(lblk, map->m_lblk)
520 tp_assign(len, map->m_len)
521 tp_assign(flags, map->m_flags)
522 ),
523
524 TP_printk("dev %d,%d ino %lu lblk %llu len %u flags %s",
525 MAJOR(__entry->dev), MINOR(__entry->dev),
526 (unsigned long) __entry->ino, __entry->lblk, __entry->len,
527 show_mflags(__entry->flags))
528 )
529
530 #endif
531
532 LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result,
533 TP_PROTO(struct inode *inode, struct writeback_control *wbc,
534 int ret, int pages_written),
535
536 TP_ARGS(inode, wbc, ret, pages_written),
537
538 TP_STRUCT__entry(
539 __field( dev_t, dev )
540 __field( ino_t, ino )
541 __field( int, ret )
542 __field( int, pages_written )
543 __field( long, pages_skipped )
544 __field( pgoff_t, writeback_index )
545 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
546 __field( int, sync_mode )
547 #endif
548 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
549 __field( char, encountered_congestion )
550 #endif
551 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
552 __field( char, more_io )
553 #endif
554 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
555 __field( char, no_nrwrite_index_update )
556 #endif
557 ),
558
559 TP_fast_assign(
560 tp_assign(dev, inode->i_sb->s_dev)
561 tp_assign(ino, inode->i_ino)
562 tp_assign(ret, ret)
563 tp_assign(pages_written, pages_written)
564 tp_assign(pages_skipped, wbc->pages_skipped)
565 tp_assign(writeback_index, inode->i_mapping->writeback_index)
566 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
567 tp_assign(sync_mode, wbc->sync_mode)
568 #endif
569 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
570 tp_assign(encountered_congestion, wbc->encountered_congestion)
571 #endif
572 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
573 tp_assign(more_io, wbc->more_io)
574 #endif
575 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35))
576 tp_assign(no_nrwrite_index_update, wbc->no_nrwrite_index_update)
577 #endif
578 ),
579
580 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
581 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
582 "sync_mode %d writeback_index %lu",
583 MAJOR(__entry->dev), MINOR(__entry->dev),
584 (unsigned long) __entry->ino, __entry->ret,
585 __entry->pages_written, __entry->pages_skipped,
586 __entry->sync_mode,
587 (unsigned long) __entry->writeback_index)
588 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
589 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
590 " more_io %d sync_mode %d writeback_index %lu",
591 MAJOR(__entry->dev), MINOR(__entry->dev),
592 (unsigned long) __entry->ino, __entry->ret,
593 __entry->pages_written, __entry->pages_skipped,
594 __entry->more_io, __entry->sync_mode,
595 (unsigned long) __entry->writeback_index)
596 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
597 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
598 " more_io %d writeback_index %lu",
599 MAJOR(__entry->dev), MINOR(__entry->dev),
600 (unsigned long) __entry->ino, __entry->ret,
601 __entry->pages_written, __entry->pages_skipped,
602 __entry->more_io,
603 (unsigned long) __entry->writeback_index)
604 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
605 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
606 " more_io %d no_nrwrite_index_update %d writeback_index %lu",
607 MAJOR(__entry->dev), MINOR(__entry->dev),
608 (unsigned long) __entry->ino, __entry->ret,
609 __entry->pages_written, __entry->pages_skipped,
610 __entry->more_io, __entry->no_nrwrite_index_update,
611 (unsigned long) __entry->writeback_index)
612 #else
613 TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
614 " congestion %d"
615 " more_io %d no_nrwrite_index_update %d writeback_index %lu",
616 MAJOR(__entry->dev), MINOR(__entry->dev),
617 (unsigned long) __entry->ino, __entry->ret,
618 __entry->pages_written, __entry->pages_skipped,
619 __entry->encountered_congestion,
620 __entry->more_io, __entry->no_nrwrite_index_update,
621 (unsigned long) __entry->writeback_index)
622 #endif
623 )
624
625 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
626 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op,
627 TP_PROTO(struct page *page),
628
629 TP_ARGS(page),
630
631 TP_STRUCT__entry(
632 __field( dev_t, dev )
633 __field( ino_t, ino )
634 __field( pgoff_t, index )
635
636 ),
637
638 TP_fast_assign(
639 tp_assign(dev, page->mapping->host->i_sb->s_dev)
640 tp_assign(ino, page->mapping->host->i_ino)
641 tp_assign(index, page->index)
642 ),
643
644 TP_printk("dev %d,%d ino %lu page_index %lu",
645 MAJOR(__entry->dev), MINOR(__entry->dev),
646 (unsigned long) __entry->ino,
647 (unsigned long) __entry->index)
648 )
649
650 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
651 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_writepage,
652
653 TP_PROTO(struct page *page),
654
655 TP_ARGS(page)
656 )
657 #endif
658
659 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_readpage,
660
661 TP_PROTO(struct page *page),
662
663 TP_ARGS(page)
664 )
665
666 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_releasepage,
667
668 TP_PROTO(struct page *page),
669
670 TP_ARGS(page)
671 )
672
673 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
674
675 LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op,
676 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
677
678 TP_ARGS(page, offset, length),
679
680 TP_STRUCT__entry(
681 __field( dev_t, dev )
682 __field( ino_t, ino )
683 __field( pgoff_t, index )
684 __field( unsigned int, offset )
685 __field( unsigned int, length )
686 ),
687
688 TP_fast_assign(
689 tp_assign(dev, page->mapping->host->i_sb->s_dev)
690 tp_assign(ino, page->mapping->host->i_ino)
691 tp_assign(index, page->index)
692 tp_assign(offset, offset)
693 tp_assign(length, length)
694 ),
695
696 TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u",
697 MAJOR(__entry->dev), MINOR(__entry->dev),
698 (unsigned long) __entry->ino,
699 (unsigned long) __entry->index,
700 __entry->offset, __entry->length)
701 )
702
703 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_invalidatepage,
704 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
705
706 TP_ARGS(page, offset, length)
707 )
708
709 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_journalled_invalidatepage,
710 TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
711
712 TP_ARGS(page, offset, length)
713 )
714
715 #else
716
717 LTTNG_TRACEPOINT_EVENT(ext4_invalidatepage,
718 TP_PROTO(struct page *page, unsigned long offset),
719
720 TP_ARGS(page, offset),
721
722 TP_STRUCT__entry(
723 __field( dev_t, dev )
724 __field( ino_t, ino )
725 __field( pgoff_t, index )
726 __field( unsigned long, offset )
727
728 ),
729
730 TP_fast_assign(
731 tp_assign(dev, page->mapping->host->i_sb->s_dev)
732 tp_assign(ino, page->mapping->host->i_ino)
733 tp_assign(index, page->index)
734 tp_assign(offset, offset)
735 ),
736
737 TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
738 MAJOR(__entry->dev), MINOR(__entry->dev),
739 (unsigned long) __entry->ino,
740 (unsigned long) __entry->index, __entry->offset)
741 )
742
743 #endif
744
745 #endif
746
747 LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks,
748 TP_PROTO(struct super_block *sb, unsigned long long blk,
749 unsigned long long count),
750
751 TP_ARGS(sb, blk, count),
752
753 TP_STRUCT__entry(
754 __field( dev_t, dev )
755 __field( __u64, blk )
756 __field( __u64, count )
757
758 ),
759
760 TP_fast_assign(
761 tp_assign(dev, sb->s_dev)
762 tp_assign(blk, blk)
763 tp_assign(count, count)
764 ),
765
766 TP_printk("dev %d,%d blk %llu count %llu",
767 MAJOR(__entry->dev), MINOR(__entry->dev),
768 __entry->blk, __entry->count)
769 )
770
771 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa,
772 TP_PROTO(struct ext4_allocation_context *ac,
773 struct ext4_prealloc_space *pa),
774
775 TP_ARGS(ac, pa),
776
777 TP_STRUCT__entry(
778 __field( dev_t, dev )
779 __field( ino_t, ino )
780 __field( __u64, pa_pstart )
781 __field( __u64, pa_lstart )
782 __field( __u32, pa_len )
783
784 ),
785
786 TP_fast_assign(
787 tp_assign(dev, ac->ac_sb->s_dev)
788 tp_assign(ino, ac->ac_inode->i_ino)
789 tp_assign(pa_pstart, pa->pa_pstart)
790 tp_assign(pa_lstart, pa->pa_lstart)
791 tp_assign(pa_len, pa->pa_len)
792 ),
793
794 TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu",
795 MAJOR(__entry->dev), MINOR(__entry->dev),
796 (unsigned long) __entry->ino,
797 __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart)
798 )
799
800 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_inode_pa,
801
802 TP_PROTO(struct ext4_allocation_context *ac,
803 struct ext4_prealloc_space *pa),
804
805 TP_ARGS(ac, pa)
806 )
807
808 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_group_pa,
809
810 TP_PROTO(struct ext4_allocation_context *ac,
811 struct ext4_prealloc_space *pa),
812
813 TP_ARGS(ac, pa)
814 )
815
816 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa,
817 TP_PROTO(
818 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40))
819 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
820 struct super_block *sb,
821 struct inode *inode,
822 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
823 struct super_block *sb,
824 struct ext4_allocation_context *ac,
825 #else
826 struct ext4_allocation_context *ac,
827 #endif
828 #endif
829 struct ext4_prealloc_space *pa,
830 unsigned long long block, unsigned int count),
831
832 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
833 TP_ARGS(pa, block, count),
834 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
835 TP_ARGS(sb, inode, pa, block, count),
836 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
837 TP_ARGS(sb, ac, pa, block, count),
838 #else
839 TP_ARGS(ac, pa, block, count),
840 #endif
841
842 TP_STRUCT__entry(
843 __field( dev_t, dev )
844 __field( ino_t, ino )
845 __field( __u64, block )
846 __field( __u32, count )
847
848 ),
849
850 TP_fast_assign(
851 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40))
852 tp_assign(dev, pa->pa_inode->i_sb->s_dev)
853 tp_assign(ino, pa->pa_inode->i_ino)
854 #else
855 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
856 tp_assign(dev, sb->s_dev)
857 #else
858 tp_assign(dev, ac->ac_sb->s_dev)
859 #endif
860 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
861 tp_assign(ino, inode->i_ino)
862 #else
863 tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
864 #endif
865 #endif
866 tp_assign(block, block)
867 tp_assign(count, count)
868 ),
869
870 TP_printk("dev %d,%d ino %lu block %llu count %u",
871 MAJOR(__entry->dev), MINOR(__entry->dev),
872 (unsigned long) __entry->ino,
873 __entry->block, __entry->count)
874 )
875
876 LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa,
877
878 #if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0))
879 TP_PROTO(struct ext4_prealloc_space *pa),
880
881 TP_ARGS(pa),
882 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
883 TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa),
884
885 TP_ARGS(sb, pa),
886 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
887 TP_PROTO(struct super_block *sb,
888 struct ext4_allocation_context *ac,
889 struct ext4_prealloc_space *pa),
890
891 TP_ARGS(sb, ac, pa),
892 #else
893 TP_PROTO(struct ext4_allocation_context *ac,
894 struct ext4_prealloc_space *pa),
895
896 TP_ARGS(ac, pa),
897 #endif
898
899 TP_STRUCT__entry(
900 __field( dev_t, dev )
901 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
902 __field( ino_t, ino )
903 #endif
904 __field( __u64, pa_pstart )
905 __field( __u32, pa_len )
906
907 ),
908
909 TP_fast_assign(
910 #if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0))
911 tp_assign(dev, pa->pa_inode->i_sb->s_dev)
912 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
913 tp_assign(dev, sb->s_dev)
914 #else
915 tp_assign(dev, ac->ac_sb->s_dev)
916 #endif
917 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
918 tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0)
919 #endif
920 tp_assign(pa_pstart, pa->pa_pstart)
921 tp_assign(pa_len, pa->pa_len)
922 ),
923
924 TP_printk("dev %d,%d pstart %llu len %u",
925 MAJOR(__entry->dev), MINOR(__entry->dev),
926 __entry->pa_pstart, __entry->pa_len)
927 )
928
929 LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations,
930 TP_PROTO(struct inode *inode),
931
932 TP_ARGS(inode),
933
934 TP_STRUCT__entry(
935 __field( dev_t, dev )
936 __field( ino_t, ino )
937
938 ),
939
940 TP_fast_assign(
941 tp_assign(dev, inode->i_sb->s_dev)
942 tp_assign(ino, inode->i_ino)
943 ),
944
945 TP_printk("dev %d,%d ino %lu",
946 MAJOR(__entry->dev), MINOR(__entry->dev),
947 (unsigned long) __entry->ino)
948 )
949
950 LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations,
951 TP_PROTO(struct super_block *sb, int needed),
952
953 TP_ARGS(sb, needed),
954
955 TP_STRUCT__entry(
956 __field( dev_t, dev )
957 __field( int, needed )
958
959 ),
960
961 TP_fast_assign(
962 tp_assign(dev, sb->s_dev)
963 tp_assign(needed, needed)
964 ),
965
966 TP_printk("dev %d,%d needed %d",
967 MAJOR(__entry->dev), MINOR(__entry->dev),
968 __entry->needed)
969 )
970
971 LTTNG_TRACEPOINT_EVENT(ext4_request_blocks,
972 TP_PROTO(struct ext4_allocation_request *ar),
973
974 TP_ARGS(ar),
975
976 TP_STRUCT__entry(
977 __field( dev_t, dev )
978 __field( ino_t, ino )
979 __field( unsigned int, len )
980 __field( __u32, logical )
981 __field( __u32, lleft )
982 __field( __u32, lright )
983 __field( __u64, goal )
984 __field( __u64, pleft )
985 __field( __u64, pright )
986 __field( unsigned int, flags )
987 ),
988
989 TP_fast_assign(
990 tp_assign(dev, ar->inode->i_sb->s_dev)
991 tp_assign(ino, ar->inode->i_ino)
992 tp_assign(len, ar->len)
993 tp_assign(logical, ar->logical)
994 tp_assign(goal, ar->goal)
995 tp_assign(lleft, ar->lleft)
996 tp_assign(lright, ar->lright)
997 tp_assign(pleft, ar->pleft)
998 tp_assign(pright, ar->pright)
999 tp_assign(flags, ar->flags)
1000 ),
1001
1002 TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu "
1003 "lleft %u lright %u pleft %llu pright %llu ",
1004 MAJOR(__entry->dev), MINOR(__entry->dev),
1005 (unsigned long) __entry->ino, __entry->flags,
1006 __entry->len, __entry->logical, __entry->goal,
1007 __entry->lleft, __entry->lright, __entry->pleft,
1008 __entry->pright)
1009 )
1010
1011 LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks,
1012 TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block),
1013
1014 TP_ARGS(ar, block),
1015
1016 TP_STRUCT__entry(
1017 __field( dev_t, dev )
1018 __field( ino_t, ino )
1019 __field( __u64, block )
1020 __field( unsigned int, len )
1021 __field( __u32, logical )
1022 __field( __u32, lleft )
1023 __field( __u32, lright )
1024 __field( __u64, goal )
1025 __field( __u64, pleft )
1026 __field( __u64, pright )
1027 __field( unsigned int, flags )
1028 ),
1029
1030 TP_fast_assign(
1031 tp_assign(dev, ar->inode->i_sb->s_dev)
1032 tp_assign(ino, ar->inode->i_ino)
1033 tp_assign(block, block)
1034 tp_assign(len, ar->len)
1035 tp_assign(logical, ar->logical)
1036 tp_assign(goal, ar->goal)
1037 tp_assign(lleft, ar->lleft)
1038 tp_assign(lright, ar->lright)
1039 tp_assign(pleft, ar->pleft)
1040 tp_assign(pright, ar->pright)
1041 tp_assign(flags, ar->flags)
1042 ),
1043
1044 TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u "
1045 "goal %llu lleft %u lright %u pleft %llu pright %llu",
1046 MAJOR(__entry->dev), MINOR(__entry->dev),
1047 (unsigned long) __entry->ino, __entry->flags,
1048 __entry->len, __entry->block, __entry->logical,
1049 __entry->goal, __entry->lleft, __entry->lright,
1050 __entry->pleft, __entry->pright)
1051 )
1052
1053 LTTNG_TRACEPOINT_EVENT(ext4_free_blocks,
1054 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1055 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
1056 int flags),
1057
1058 TP_ARGS(inode, block, count, flags),
1059 #else
1060 TP_PROTO(struct inode *inode, __u64 block, unsigned long count,
1061 int metadata),
1062
1063 TP_ARGS(inode, block, count, metadata),
1064 #endif
1065
1066 TP_STRUCT__entry(
1067 __field( dev_t, dev )
1068 __field( ino_t, ino )
1069 __field( __u64, block )
1070 __field( unsigned long, count )
1071 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1072 __field( int, flags )
1073 __field( TP_MODE_T, mode )
1074 #else
1075 __field( int, metadata )
1076 #endif
1077 ),
1078
1079 TP_fast_assign(
1080 tp_assign(dev, inode->i_sb->s_dev)
1081 tp_assign(ino, inode->i_ino)
1082 tp_assign(block, block)
1083 tp_assign(count, count)
1084 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1085 tp_assign(flags, flags)
1086 tp_assign(mode, inode->i_mode)
1087 #else
1088 tp_assign(metadata, metadata)
1089 #endif
1090 ),
1091
1092 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1093 TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d",
1094 #else
1095 TP_printk("dev %d,%d ino %lu block %llu count %lu metadata %d",
1096 #endif
1097 MAJOR(__entry->dev), MINOR(__entry->dev),
1098 (unsigned long) __entry->ino,
1099 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1100 __entry->mode, __entry->block, __entry->count,
1101 __entry->flags)
1102 #else
1103 __entry->block, __entry->count, __entry->metadata)
1104 #endif
1105 )
1106
1107 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
1108 LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter,
1109 #else
1110 LTTNG_TRACEPOINT_EVENT(ext4_sync_file,
1111 #endif
1112 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
1113 TP_PROTO(struct file *file, int datasync),
1114
1115 TP_ARGS(file, datasync),
1116 #else
1117 TP_PROTO(struct file *file, struct dentry *dentry, int datasync),
1118
1119 TP_ARGS(file, dentry, datasync),
1120 #endif
1121
1122 TP_STRUCT__entry(
1123 __field( dev_t, dev )
1124 __field( ino_t, ino )
1125 __field( ino_t, parent )
1126 __field( int, datasync )
1127 ),
1128
1129 TP_fast_assign(
1130 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
1131 tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev)
1132 tp_assign(ino, file->f_path.dentry->d_inode->i_ino)
1133 tp_assign(datasync, datasync)
1134 tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino)
1135 #else
1136 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1137 tp_assign(ino, dentry->d_inode->i_ino)
1138 tp_assign(datasync, datasync)
1139 tp_assign(parent, dentry->d_parent->d_inode->i_ino)
1140 #endif
1141 ),
1142
1143 TP_printk("dev %d,%d ino %lu parent %lu datasync %d ",
1144 MAJOR(__entry->dev), MINOR(__entry->dev),
1145 (unsigned long) __entry->ino,
1146 (unsigned long) __entry->parent, __entry->datasync)
1147 )
1148
1149 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
1150 LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit,
1151 TP_PROTO(struct inode *inode, int ret),
1152
1153 TP_ARGS(inode, ret),
1154
1155 TP_STRUCT__entry(
1156 __field( dev_t, dev )
1157 __field( ino_t, ino )
1158 __field( int, ret )
1159 ),
1160
1161 TP_fast_assign(
1162 tp_assign(dev, inode->i_sb->s_dev)
1163 tp_assign(ino, inode->i_ino)
1164 tp_assign(ret, ret)
1165 ),
1166
1167 TP_printk("dev %d,%d ino %lu ret %d",
1168 MAJOR(__entry->dev), MINOR(__entry->dev),
1169 (unsigned long) __entry->ino,
1170 __entry->ret)
1171 )
1172 #endif
1173
1174 LTTNG_TRACEPOINT_EVENT(ext4_sync_fs,
1175 TP_PROTO(struct super_block *sb, int wait),
1176
1177 TP_ARGS(sb, wait),
1178
1179 TP_STRUCT__entry(
1180 __field( dev_t, dev )
1181 __field( int, wait )
1182
1183 ),
1184
1185 TP_fast_assign(
1186 tp_assign(dev, sb->s_dev)
1187 tp_assign(wait, wait)
1188 ),
1189
1190 TP_printk("dev %d,%d wait %d",
1191 MAJOR(__entry->dev), MINOR(__entry->dev),
1192 __entry->wait)
1193 )
1194
1195 LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks,
1196 TP_PROTO(struct inode *inode),
1197
1198 TP_ARGS(inode),
1199
1200 TP_STRUCT__entry(
1201 __field( dev_t, dev )
1202 __field( ino_t, ino )
1203 __field( unsigned int, data_blocks )
1204 __field( unsigned int, meta_blocks )
1205 ),
1206
1207 TP_fast_assign(
1208 tp_assign(dev, inode->i_sb->s_dev)
1209 tp_assign(ino, inode->i_ino)
1210 tp_assign(data_blocks, EXT4_I(inode)->i_reserved_data_blocks)
1211 tp_assign(meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks)
1212 ),
1213
1214 TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u",
1215 MAJOR(__entry->dev), MINOR(__entry->dev),
1216 (unsigned long) __entry->ino,
1217 __entry->data_blocks, __entry->meta_blocks)
1218 )
1219
1220 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc,
1221 TP_PROTO(struct ext4_allocation_context *ac),
1222
1223 TP_ARGS(ac),
1224
1225 TP_STRUCT__entry(
1226 __field( dev_t, dev )
1227 __field( ino_t, ino )
1228 __field( __u32, orig_logical )
1229 __field( int, orig_start )
1230 __field( __u32, orig_group )
1231 __field( int, orig_len )
1232 __field( __u32, goal_logical )
1233 __field( int, goal_start )
1234 __field( __u32, goal_group )
1235 __field( int, goal_len )
1236 __field( __u32, result_logical )
1237 __field( int, result_start )
1238 __field( __u32, result_group )
1239 __field( int, result_len )
1240 __field( __u16, found )
1241 __field( __u16, groups )
1242 __field( __u16, buddy )
1243 __field( __u16, flags )
1244 __field( __u16, tail )
1245 __field( __u8, cr )
1246 ),
1247
1248 TP_fast_assign(
1249 tp_assign(dev, ac->ac_inode->i_sb->s_dev)
1250 tp_assign(ino, ac->ac_inode->i_ino)
1251 tp_assign(orig_logical, ac->ac_o_ex.fe_logical)
1252 tp_assign(orig_start, ac->ac_o_ex.fe_start)
1253 tp_assign(orig_group, ac->ac_o_ex.fe_group)
1254 tp_assign(orig_len, ac->ac_o_ex.fe_len)
1255 tp_assign(goal_logical, ac->ac_g_ex.fe_logical)
1256 tp_assign(goal_start, ac->ac_g_ex.fe_start)
1257 tp_assign(goal_group, ac->ac_g_ex.fe_group)
1258 tp_assign(goal_len, ac->ac_g_ex.fe_len)
1259 tp_assign(result_logical, ac->ac_f_ex.fe_logical)
1260 tp_assign(result_start, ac->ac_f_ex.fe_start)
1261 tp_assign(result_group, ac->ac_f_ex.fe_group)
1262 tp_assign(result_len, ac->ac_f_ex.fe_len)
1263 tp_assign(found, ac->ac_found)
1264 tp_assign(flags, ac->ac_flags)
1265 tp_assign(groups, ac->ac_groups_scanned)
1266 tp_assign(buddy, ac->ac_buddy)
1267 tp_assign(tail, ac->ac_tail)
1268 tp_assign(cr, ac->ac_criteria)
1269 ),
1270
1271 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u "
1272 "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x "
1273 "tail %u broken %u",
1274 MAJOR(__entry->dev), MINOR(__entry->dev),
1275 (unsigned long) __entry->ino,
1276 __entry->orig_group, __entry->orig_start,
1277 __entry->orig_len, __entry->orig_logical,
1278 __entry->goal_group, __entry->goal_start,
1279 __entry->goal_len, __entry->goal_logical,
1280 __entry->result_group, __entry->result_start,
1281 __entry->result_len, __entry->result_logical,
1282 __entry->found, __entry->groups, __entry->cr,
1283 __entry->flags, __entry->tail,
1284 __entry->buddy ? 1 << __entry->buddy : 0)
1285 )
1286
1287 LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc,
1288 TP_PROTO(struct ext4_allocation_context *ac),
1289
1290 TP_ARGS(ac),
1291
1292 TP_STRUCT__entry(
1293 __field( dev_t, dev )
1294 __field( ino_t, ino )
1295 __field( __u32, orig_logical )
1296 __field( int, orig_start )
1297 __field( __u32, orig_group )
1298 __field( int, orig_len )
1299 __field( __u32, result_logical )
1300 __field( int, result_start )
1301 __field( __u32, result_group )
1302 __field( int, result_len )
1303 ),
1304
1305 TP_fast_assign(
1306 tp_assign(dev, ac->ac_inode->i_sb->s_dev)
1307 tp_assign(ino, ac->ac_inode->i_ino)
1308 tp_assign(orig_logical, ac->ac_o_ex.fe_logical)
1309 tp_assign(orig_start, ac->ac_o_ex.fe_start)
1310 tp_assign(orig_group, ac->ac_o_ex.fe_group)
1311 tp_assign(orig_len, ac->ac_o_ex.fe_len)
1312 tp_assign(result_logical, ac->ac_b_ex.fe_logical)
1313 tp_assign(result_start, ac->ac_b_ex.fe_start)
1314 tp_assign(result_group, ac->ac_b_ex.fe_group)
1315 tp_assign(result_len, ac->ac_b_ex.fe_len)
1316 ),
1317
1318 TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u",
1319 MAJOR(__entry->dev), MINOR(__entry->dev),
1320 (unsigned long) __entry->ino,
1321 __entry->orig_group, __entry->orig_start,
1322 __entry->orig_len, __entry->orig_logical,
1323 __entry->result_group, __entry->result_start,
1324 __entry->result_len, __entry->result_logical)
1325 )
1326
1327 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc,
1328 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1329 TP_PROTO(struct super_block *sb,
1330 struct inode *inode,
1331 ext4_group_t group,
1332 ext4_grpblk_t start,
1333 ext4_grpblk_t len),
1334
1335 TP_ARGS(sb, inode, group, start, len),
1336 #else
1337 TP_PROTO(struct ext4_allocation_context *ac),
1338
1339 TP_ARGS(ac),
1340 #endif
1341
1342 TP_STRUCT__entry(
1343 __field( dev_t, dev )
1344 __field( ino_t, ino )
1345 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37))
1346 __field( __u32, result_logical )
1347 #endif
1348 __field( int, result_start )
1349 __field( __u32, result_group )
1350 __field( int, result_len )
1351 ),
1352
1353 TP_fast_assign(
1354 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1355 tp_assign(dev, sb->s_dev)
1356 tp_assign(ino, inode ? inode->i_ino : 0)
1357 tp_assign(result_start, start)
1358 tp_assign(result_group, group)
1359 tp_assign(result_len, len)
1360 #else
1361 tp_assign(dev, ac->ac_sb->s_dev)
1362 tp_assign(ino, ac->ac_inode ? ac->ac_inode->i_ino : 0)
1363 tp_assign(result_logical, ac->ac_b_ex.fe_logical)
1364 tp_assign(result_start, ac->ac_b_ex.fe_start)
1365 tp_assign(result_group, ac->ac_b_ex.fe_group)
1366 tp_assign(result_len, ac->ac_b_ex.fe_len)
1367 #endif
1368 ),
1369
1370 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1371 TP_printk("dev %d,%d inode %lu extent %u/%d/%d ",
1372 #else
1373 TP_printk("dev %d,%d inode %lu extent %u/%d/%u@%u ",
1374 #endif
1375 MAJOR(__entry->dev), MINOR(__entry->dev),
1376 (unsigned long) __entry->ino,
1377 __entry->result_group, __entry->result_start,
1378 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1379 __entry->result_len
1380 #else
1381 __entry->result_len, __entry->result_logical
1382 #endif
1383 )
1384 )
1385
1386 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_discard,
1387
1388 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1389 TP_PROTO(struct super_block *sb,
1390 struct inode *inode,
1391 ext4_group_t group,
1392 ext4_grpblk_t start,
1393 ext4_grpblk_t len),
1394
1395 TP_ARGS(sb, inode, group, start, len)
1396 #else
1397 TP_PROTO(struct ext4_allocation_context *ac),
1398
1399 TP_ARGS(ac)
1400 #endif
1401 )
1402
1403 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_free,
1404
1405 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
1406 TP_PROTO(struct super_block *sb,
1407 struct inode *inode,
1408 ext4_group_t group,
1409 ext4_grpblk_t start,
1410 ext4_grpblk_t len),
1411
1412 TP_ARGS(sb, inode, group, start, len)
1413 #else
1414 TP_PROTO(struct ext4_allocation_context *ac),
1415
1416 TP_ARGS(ac)
1417 #endif
1418 )
1419
1420 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
1421 LTTNG_TRACEPOINT_EVENT(ext4_forget,
1422 TP_PROTO(struct inode *inode, int is_metadata, __u64 block),
1423
1424 TP_ARGS(inode, is_metadata, block),
1425
1426 TP_STRUCT__entry(
1427 __field( dev_t, dev )
1428 __field( ino_t, ino )
1429 __field( __u64, block )
1430 __field( int, is_metadata )
1431 __field( TP_MODE_T, mode )
1432 ),
1433
1434 TP_fast_assign(
1435 tp_assign(dev, inode->i_sb->s_dev)
1436 tp_assign(ino, inode->i_ino)
1437 tp_assign(block, block)
1438 tp_assign(is_metadata, is_metadata)
1439 tp_assign(mode, inode->i_mode)
1440 ),
1441
1442 TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu",
1443 MAJOR(__entry->dev), MINOR(__entry->dev),
1444 (unsigned long) __entry->ino,
1445 __entry->mode, __entry->is_metadata, __entry->block)
1446 )
1447 #endif
1448
1449 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
1450 LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space,
1451 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1452 TP_PROTO(struct inode *inode, int used_blocks, int quota_claim),
1453
1454 TP_ARGS(inode, used_blocks, quota_claim),
1455 #else
1456 TP_PROTO(struct inode *inode, int used_blocks),
1457
1458 TP_ARGS(inode, used_blocks),
1459 #endif
1460
1461 TP_STRUCT__entry(
1462 __field( dev_t, dev )
1463 __field( ino_t, ino )
1464 __field( __u64, i_blocks )
1465 __field( int, used_blocks )
1466 __field( int, reserved_data_blocks )
1467 __field( int, reserved_meta_blocks )
1468 __field( int, allocated_meta_blocks )
1469 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1470 __field( int, quota_claim )
1471 #endif
1472 __field( TP_MODE_T, mode )
1473 ),
1474
1475 TP_fast_assign(
1476 tp_assign(dev, inode->i_sb->s_dev)
1477 tp_assign(ino, inode->i_ino)
1478 tp_assign(i_blocks, inode->i_blocks)
1479 tp_assign(used_blocks, used_blocks)
1480 tp_assign(reserved_data_blocks,
1481 EXT4_I(inode)->i_reserved_data_blocks)
1482 tp_assign(reserved_meta_blocks,
1483 EXT4_I(inode)->i_reserved_meta_blocks)
1484 tp_assign(allocated_meta_blocks,
1485 EXT4_I(inode)->i_allocated_meta_blocks)
1486 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1487 tp_assign(quota_claim, quota_claim)
1488 #endif
1489 tp_assign(mode, inode->i_mode)
1490 ),
1491
1492 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1493 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
1494 "reserved_data_blocks %d reserved_meta_blocks %d "
1495 "allocated_meta_blocks %d quota_claim %d",
1496 MAJOR(__entry->dev), MINOR(__entry->dev),
1497 (unsigned long) __entry->ino,
1498 __entry->mode, __entry->i_blocks,
1499 __entry->used_blocks, __entry->reserved_data_blocks,
1500 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks,
1501 __entry->quota_claim)
1502 #else
1503 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
1504 "reserved_data_blocks %d reserved_meta_blocks %d "
1505 "allocated_meta_blocks %d",
1506 MAJOR(__entry->dev), MINOR(__entry->dev),
1507 (unsigned long) __entry->ino,
1508 __entry->mode, __entry->i_blocks,
1509 __entry->used_blocks, __entry->reserved_data_blocks,
1510 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
1511 #endif
1512 )
1513
1514 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
1515 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
1516 TP_PROTO(struct inode *inode),
1517
1518 TP_ARGS(inode),
1519
1520 TP_STRUCT__entry(
1521 __field( dev_t, dev )
1522 __field( ino_t, ino )
1523 __field( __u64, i_blocks )
1524 __field( int, reserved_data_blocks )
1525 __field( int, reserved_meta_blocks )
1526 __field( TP_MODE_T, mode )
1527 ),
1528
1529 TP_fast_assign(
1530 tp_assign(dev, inode->i_sb->s_dev)
1531 tp_assign(ino, inode->i_ino)
1532 tp_assign(i_blocks, inode->i_blocks)
1533 tp_assign(reserved_data_blocks,
1534 EXT4_I(inode)->i_reserved_data_blocks)
1535 tp_assign(reserved_meta_blocks,
1536 EXT4_I(inode)->i_reserved_meta_blocks)
1537 tp_assign(mode, inode->i_mode)
1538 ),
1539
1540 TP_printk()
1541 )
1542 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
1543 LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space,
1544 TP_PROTO(struct inode *inode, int md_needed),
1545
1546 TP_ARGS(inode, md_needed),
1547
1548 TP_STRUCT__entry(
1549 __field( dev_t, dev )
1550 __field( ino_t, ino )
1551 __field( __u64, i_blocks )
1552 __field( int, md_needed )
1553 __field( int, reserved_data_blocks )
1554 __field( int, reserved_meta_blocks )
1555 __field( TP_MODE_T, mode )
1556 ),
1557
1558 TP_fast_assign(
1559 tp_assign(dev, inode->i_sb->s_dev)
1560 tp_assign(ino, inode->i_ino)
1561 tp_assign(i_blocks, inode->i_blocks)
1562 tp_assign(md_needed, md_needed)
1563 tp_assign(reserved_data_blocks,
1564 EXT4_I(inode)->i_reserved_data_blocks)
1565 tp_assign(reserved_meta_blocks,
1566 EXT4_I(inode)->i_reserved_meta_blocks)
1567 tp_assign(mode, inode->i_mode)
1568 ),
1569
1570 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d "
1571 "reserved_data_blocks %d reserved_meta_blocks %d",
1572 MAJOR(__entry->dev), MINOR(__entry->dev),
1573 (unsigned long) __entry->ino,
1574 __entry->mode, __entry->i_blocks,
1575 __entry->md_needed, __entry->reserved_data_blocks,
1576 __entry->reserved_meta_blocks)
1577 )
1578 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
1579
1580 LTTNG_TRACEPOINT_EVENT(ext4_da_release_space,
1581 TP_PROTO(struct inode *inode, int freed_blocks),
1582
1583 TP_ARGS(inode, freed_blocks),
1584
1585 TP_STRUCT__entry(
1586 __field( dev_t, dev )
1587 __field( ino_t, ino )
1588 __field( __u64, i_blocks )
1589 __field( int, freed_blocks )
1590 __field( int, reserved_data_blocks )
1591 __field( int, reserved_meta_blocks )
1592 __field( int, allocated_meta_blocks )
1593 __field( TP_MODE_T, mode )
1594 ),
1595
1596 TP_fast_assign(
1597 tp_assign(dev, inode->i_sb->s_dev)
1598 tp_assign(ino, inode->i_ino)
1599 tp_assign(i_blocks, inode->i_blocks)
1600 tp_assign(freed_blocks, freed_blocks)
1601 tp_assign(reserved_data_blocks,
1602 EXT4_I(inode)->i_reserved_data_blocks)
1603 tp_assign(reserved_meta_blocks,
1604 EXT4_I(inode)->i_reserved_meta_blocks)
1605 tp_assign(allocated_meta_blocks,
1606 EXT4_I(inode)->i_allocated_meta_blocks)
1607 tp_assign(mode, inode->i_mode)
1608 ),
1609
1610 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
1611 "reserved_data_blocks %d reserved_meta_blocks %d "
1612 "allocated_meta_blocks %d",
1613 MAJOR(__entry->dev), MINOR(__entry->dev),
1614 (unsigned long) __entry->ino,
1615 __entry->mode, __entry->i_blocks,
1616 __entry->freed_blocks, __entry->reserved_data_blocks,
1617 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
1618 )
1619 #endif
1620
1621 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
1622 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load,
1623 TP_PROTO(struct super_block *sb, unsigned long group),
1624
1625 TP_ARGS(sb, group),
1626
1627 TP_STRUCT__entry(
1628 __field( dev_t, dev )
1629 __field( __u32, group )
1630
1631 ),
1632
1633 TP_fast_assign(
1634 tp_assign(dev, sb->s_dev)
1635 tp_assign(group, group)
1636 ),
1637
1638 TP_printk("dev %d,%d group %u",
1639 MAJOR(__entry->dev), MINOR(__entry->dev),
1640 __entry->group)
1641 )
1642
1643 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load,
1644
1645 TP_PROTO(struct super_block *sb, unsigned long group),
1646
1647 TP_ARGS(sb, group)
1648 )
1649
1650 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load,
1651
1652 TP_PROTO(struct super_block *sb, unsigned long group),
1653
1654 TP_ARGS(sb, group)
1655 )
1656 #endif
1657
1658 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39))
1659 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load,
1660
1661 TP_PROTO(struct super_block *sb, unsigned long group),
1662
1663 TP_ARGS(sb, group)
1664 )
1665
1666 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap,
1667
1668 TP_PROTO(struct super_block *sb, unsigned long group),
1669
1670 TP_ARGS(sb, group)
1671 )
1672
1673 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter,
1674 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
1675
1676 TP_ARGS(inode, offset, len, rw),
1677
1678 TP_STRUCT__entry(
1679 __field( dev_t, dev )
1680 __field( ino_t, ino )
1681 __field( loff_t, pos )
1682 __field( unsigned long, len )
1683 __field( int, rw )
1684 ),
1685
1686 TP_fast_assign(
1687 tp_assign(dev, inode->i_sb->s_dev)
1688 tp_assign(ino, inode->i_ino)
1689 tp_assign(pos, offset)
1690 tp_assign(len, len)
1691 tp_assign(rw, rw)
1692 ),
1693
1694 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d",
1695 MAJOR(__entry->dev), MINOR(__entry->dev),
1696 (unsigned long) __entry->ino,
1697 __entry->pos, __entry->len, __entry->rw)
1698 )
1699
1700 LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit,
1701 TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
1702 int rw, int ret),
1703
1704 TP_ARGS(inode, offset, len, rw, ret),
1705
1706 TP_STRUCT__entry(
1707 __field( dev_t, dev )
1708 __field( ino_t, ino )
1709 __field( loff_t, pos )
1710 __field( unsigned long, len )
1711 __field( int, rw )
1712 __field( int, ret )
1713 ),
1714
1715 TP_fast_assign(
1716 tp_assign(dev, inode->i_sb->s_dev)
1717 tp_assign(ino, inode->i_ino)
1718 tp_assign(pos, offset)
1719 tp_assign(len, len)
1720 tp_assign(rw, rw)
1721 tp_assign(ret, ret)
1722 ),
1723
1724 TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d",
1725 MAJOR(__entry->dev), MINOR(__entry->dev),
1726 (unsigned long) __entry->ino,
1727 __entry->pos, __entry->len,
1728 __entry->rw, __entry->ret)
1729 )
1730
1731 LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit,
1732 TP_PROTO(struct inode *inode, loff_t offset,
1733 unsigned int max_blocks, int ret),
1734
1735 TP_ARGS(inode, offset, max_blocks, ret),
1736
1737 TP_STRUCT__entry(
1738 __field( dev_t, dev )
1739 __field( ino_t, ino )
1740 __field( loff_t, pos )
1741 __field( unsigned int, blocks )
1742 __field( int, ret )
1743 ),
1744
1745 TP_fast_assign(
1746 tp_assign(dev, inode->i_sb->s_dev)
1747 tp_assign(ino, inode->i_ino)
1748 tp_assign(pos, offset)
1749 tp_assign(blocks, max_blocks)
1750 tp_assign(ret, ret)
1751 ),
1752
1753 TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d",
1754 MAJOR(__entry->dev), MINOR(__entry->dev),
1755 (unsigned long) __entry->ino,
1756 __entry->pos, __entry->blocks,
1757 __entry->ret)
1758 )
1759
1760 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
1761
1762 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode,
1763 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1764
1765 TP_ARGS(inode, offset, len, mode),
1766
1767 TP_STRUCT__entry(
1768 __field( dev_t, dev )
1769 __field( ino_t, ino )
1770 __field( loff_t, offset )
1771 __field( loff_t, len )
1772 __field( int, mode )
1773 ),
1774
1775 TP_fast_assign(
1776 tp_assign(dev, inode->i_sb->s_dev)
1777 tp_assign(ino, inode->i_ino)
1778 tp_assign(offset, offset)
1779 tp_assign(len, len)
1780 tp_assign(mode, mode)
1781 ),
1782
1783 TP_printk("dev %d,%d ino %lu offset %lld len %lld mode %s",
1784 MAJOR(__entry->dev), MINOR(__entry->dev),
1785 (unsigned long) __entry->ino,
1786 __entry->offset, __entry->len,
1787 show_falloc_mode(__entry->mode))
1788 )
1789
1790 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter,
1791
1792 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1793
1794 TP_ARGS(inode, offset, len, mode)
1795 )
1796
1797 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_punch_hole,
1798
1799 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1800
1801 TP_ARGS(inode, offset, len, mode)
1802 )
1803
1804 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_zero_range,
1805
1806 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1807
1808 TP_ARGS(inode, offset, len, mode)
1809 )
1810
1811 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
1812
1813 LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter,
1814 TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1815
1816 TP_ARGS(inode, offset, len, mode),
1817
1818 TP_STRUCT__entry(
1819 __field( dev_t, dev )
1820 __field( ino_t, ino )
1821 __field( loff_t, pos )
1822 __field( loff_t, len )
1823 __field( int, mode )
1824 ),
1825
1826 TP_fast_assign(
1827 tp_assign(dev, inode->i_sb->s_dev)
1828 tp_assign(ino, inode->i_ino)
1829 tp_assign(pos, offset)
1830 tp_assign(len, len)
1831 tp_assign(mode, mode)
1832 ),
1833
1834 TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d",
1835 MAJOR(__entry->dev), MINOR(__entry->dev),
1836 (unsigned long) __entry->ino, __entry->pos,
1837 __entry->len, __entry->mode)
1838 )
1839
1840 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
1841
1842 LTTNG_TRACEPOINT_EVENT(ext4_punch_hole,
1843 TP_PROTO(struct inode *inode, loff_t offset, loff_t len),
1844
1845 TP_ARGS(inode, offset, len),
1846
1847 TP_STRUCT__entry(
1848 __field( dev_t, dev )
1849 __field( ino_t, ino )
1850 __field( loff_t, offset )
1851 __field( loff_t, len )
1852 ),
1853
1854 TP_fast_assign(
1855 tp_assign(dev, inode->i_sb->s_dev)
1856 tp_assign(ino, inode->i_ino)
1857 tp_assign(offset, offset)
1858 tp_assign(len, len)
1859 ),
1860
1861 TP_printk("dev %d,%d ino %lu offset %lld len %lld",
1862 MAJOR(__entry->dev), MINOR(__entry->dev),
1863 (unsigned long) __entry->ino,
1864 __entry->offset, __entry->len)
1865 )
1866
1867 #endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */
1868
1869 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
1870
1871 LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter,
1872 TP_PROTO(struct inode *parent, struct dentry *dentry),
1873
1874 TP_ARGS(parent, dentry),
1875
1876 TP_STRUCT__entry(
1877 __field( dev_t, dev )
1878 __field( ino_t, ino )
1879 __field( ino_t, parent )
1880 __field( loff_t, size )
1881 ),
1882
1883 TP_fast_assign(
1884 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1885 tp_assign(ino, dentry->d_inode->i_ino)
1886 tp_assign(parent, parent->i_ino)
1887 tp_assign(size, dentry->d_inode->i_size)
1888 ),
1889
1890 TP_printk("dev %d,%d ino %lu size %lld parent %lu",
1891 MAJOR(__entry->dev), MINOR(__entry->dev),
1892 (unsigned long) __entry->ino, __entry->size,
1893 (unsigned long) __entry->parent)
1894 )
1895
1896 LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit,
1897 TP_PROTO(struct dentry *dentry, int ret),
1898
1899 TP_ARGS(dentry, ret),
1900
1901 TP_STRUCT__entry(
1902 __field( dev_t, dev )
1903 __field( ino_t, ino )
1904 __field( int, ret )
1905 ),
1906
1907 TP_fast_assign(
1908 tp_assign(dev, dentry->d_inode->i_sb->s_dev)
1909 tp_assign(ino, dentry->d_inode->i_ino)
1910 tp_assign(ret, ret)
1911 ),
1912
1913 TP_printk("dev %d,%d ino %lu ret %d",
1914 MAJOR(__entry->dev), MINOR(__entry->dev),
1915 (unsigned long) __entry->ino,
1916 __entry->ret)
1917 )
1918
1919 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate,
1920 TP_PROTO(struct inode *inode),
1921
1922 TP_ARGS(inode),
1923
1924 TP_STRUCT__entry(
1925 __field( dev_t, dev )
1926 __field( ino_t, ino )
1927 __field( __u64, blocks )
1928 ),
1929
1930 TP_fast_assign(
1931 tp_assign(dev, inode->i_sb->s_dev)
1932 tp_assign(ino, inode->i_ino)
1933 tp_assign(blocks, inode->i_blocks)
1934 ),
1935
1936 TP_printk("dev %d,%d ino %lu blocks %llu",
1937 MAJOR(__entry->dev), MINOR(__entry->dev),
1938 (unsigned long) __entry->ino, __entry->blocks)
1939 )
1940
1941 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter,
1942
1943 TP_PROTO(struct inode *inode),
1944
1945 TP_ARGS(inode)
1946 )
1947
1948 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_exit,
1949
1950 TP_PROTO(struct inode *inode),
1951
1952 TP_ARGS(inode)
1953 )
1954
1955 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
1956 /* 'ux' is the uninitialized extent. */
1957 LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter,
1958 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1959 struct ext4_extent *ux),
1960
1961 TP_ARGS(inode, map, ux),
1962
1963 TP_STRUCT__entry(
1964 __field( dev_t, dev )
1965 __field( ino_t, ino )
1966 __field( ext4_lblk_t, m_lblk )
1967 __field( unsigned, m_len )
1968 __field( ext4_lblk_t, u_lblk )
1969 __field( unsigned, u_len )
1970 __field( ext4_fsblk_t, u_pblk )
1971 ),
1972
1973 TP_fast_assign(
1974 tp_assign(dev, inode->i_sb->s_dev)
1975 tp_assign(ino, inode->i_ino)
1976 tp_assign(m_lblk, map->m_lblk)
1977 tp_assign(m_len, map->m_len)
1978 tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
1979 tp_assign(u_len, ext4_ext_get_actual_len(ux))
1980 tp_assign(u_pblk, ext4_ext_pblock(ux))
1981 ),
1982
1983 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u "
1984 "u_pblk %llu",
1985 MAJOR(__entry->dev), MINOR(__entry->dev),
1986 (unsigned long) __entry->ino,
1987 __entry->m_lblk, __entry->m_len,
1988 __entry->u_lblk, __entry->u_len, __entry->u_pblk)
1989 )
1990
1991 /*
1992 * 'ux' is the uninitialized extent.
1993 * 'ix' is the initialized extent to which blocks are transferred.
1994 */
1995 LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath,
1996 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
1997 struct ext4_extent *ux, struct ext4_extent *ix),
1998
1999 TP_ARGS(inode, map, ux, ix),
2000
2001 TP_STRUCT__entry(
2002 __field( dev_t, dev )
2003 __field( ino_t, ino )
2004 __field( ext4_lblk_t, m_lblk )
2005 __field( unsigned, m_len )
2006 __field( ext4_lblk_t, u_lblk )
2007 __field( unsigned, u_len )
2008 __field( ext4_fsblk_t, u_pblk )
2009 __field( ext4_lblk_t, i_lblk )
2010 __field( unsigned, i_len )
2011 __field( ext4_fsblk_t, i_pblk )
2012 ),
2013
2014 TP_fast_assign(
2015 tp_assign(dev, inode->i_sb->s_dev)
2016 tp_assign(ino, inode->i_ino)
2017 tp_assign(m_lblk, map->m_lblk)
2018 tp_assign(m_len, map->m_len)
2019 tp_assign(u_lblk, le32_to_cpu(ux->ee_block))
2020 tp_assign(u_len, ext4_ext_get_actual_len(ux))
2021 tp_assign(u_pblk, ext4_ext_pblock(ux))
2022 tp_assign(i_lblk, le32_to_cpu(ix->ee_block))
2023 tp_assign(i_len, ext4_ext_get_actual_len(ix))
2024 tp_assign(i_pblk, ext4_ext_pblock(ix))
2025 ),
2026
2027 TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u "
2028 "u_lblk %u u_len %u u_pblk %llu "
2029 "i_lblk %u i_len %u i_pblk %llu ",
2030 MAJOR(__entry->dev), MINOR(__entry->dev),
2031 (unsigned long) __entry->ino,
2032 __entry->m_lblk, __entry->m_len,
2033 __entry->u_lblk, __entry->u_len, __entry->u_pblk,
2034 __entry->i_lblk, __entry->i_len, __entry->i_pblk)
2035 )
2036 #endif
2037
2038 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter,
2039 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2040 unsigned int len, unsigned int flags),
2041
2042 TP_ARGS(inode, lblk, len, flags),
2043
2044 TP_STRUCT__entry(
2045 __field( dev_t, dev )
2046 __field( ino_t, ino )
2047 __field( ext4_lblk_t, lblk )
2048 __field( unsigned int, len )
2049 __field( unsigned int, flags )
2050 ),
2051
2052 TP_fast_assign(
2053 tp_assign(dev, inode->i_sb->s_dev)
2054 tp_assign(ino, inode->i_ino)
2055 tp_assign(lblk, lblk)
2056 tp_assign(len, len)
2057 tp_assign(flags, flags)
2058 ),
2059
2060 TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
2061 MAJOR(__entry->dev), MINOR(__entry->dev),
2062 (unsigned long) __entry->ino,
2063 __entry->lblk, __entry->len, __entry->flags)
2064 )
2065
2066 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
2067 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2068 unsigned len, unsigned flags),
2069
2070 TP_ARGS(inode, lblk, len, flags)
2071 )
2072
2073 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
2074 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2075 unsigned len, unsigned flags),
2076
2077 TP_ARGS(inode, lblk, len, flags)
2078 )
2079
2080 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2081
2082 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
2083 TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map,
2084 int ret),
2085
2086 TP_ARGS(inode, flags, map, ret),
2087
2088 TP_STRUCT__entry(
2089 __field( dev_t, dev )
2090 __field( ino_t, ino )
2091 __field( unsigned int, flags )
2092 __field( ext4_fsblk_t, pblk )
2093 __field( ext4_lblk_t, lblk )
2094 __field( unsigned int, len )
2095 __field( unsigned int, mflags )
2096 __field( int, ret )
2097 ),
2098
2099 TP_fast_assign(
2100 tp_assign(dev, inode->i_sb->s_dev)
2101 tp_assign(ino, inode->i_ino)
2102 tp_assign(flags, flags)
2103 tp_assign(pblk, map->m_pblk)
2104 tp_assign(lblk, map->m_lblk)
2105 tp_assign(len, map->m_len)
2106 tp_assign(mflags, map->m_flags)
2107 tp_assign(ret, ret)
2108 ),
2109
2110 TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u "
2111 "mflags %s ret %d",
2112 MAJOR(__entry->dev), MINOR(__entry->dev),
2113 (unsigned long) __entry->ino,
2114 show_map_flags(__entry->flags), __entry->lblk, __entry->pblk,
2115 __entry->len, show_mflags(__entry->mflags), __entry->ret)
2116 )
2117
2118 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
2119 TP_PROTO(struct inode *inode, unsigned flags,
2120 struct ext4_map_blocks *map, int ret),
2121
2122 TP_ARGS(inode, flags, map, ret)
2123 )
2124
2125 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
2126 TP_PROTO(struct inode *inode, unsigned flags,
2127 struct ext4_map_blocks *map, int ret),
2128
2129 TP_ARGS(inode, flags, map, ret)
2130 )
2131
2132 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2133
2134 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
2135 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2136
2137 TP_ARGS(inode, map, ret),
2138
2139 TP_STRUCT__entry(
2140 __field( dev_t, dev )
2141 __field( ino_t, ino )
2142 __field( ext4_fsblk_t, pblk )
2143 __field( ext4_lblk_t, lblk )
2144 __field( unsigned int, len )
2145 __field( unsigned int, flags )
2146 __field( int, ret )
2147 ),
2148
2149 TP_fast_assign(
2150 tp_assign(dev, inode->i_sb->s_dev)
2151 tp_assign(ino, inode->i_ino)
2152 tp_assign(pblk, map->m_pblk)
2153 tp_assign(lblk, map->m_lblk)
2154 tp_assign(len, map->m_len)
2155 tp_assign(flags, map->m_flags)
2156 tp_assign(ret, ret)
2157 ),
2158
2159 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d",
2160 MAJOR(__entry->dev), MINOR(__entry->dev),
2161 (unsigned long) __entry->ino,
2162 __entry->lblk, __entry->pblk,
2163 __entry->len, __entry->flags, __entry->ret)
2164 )
2165
2166 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
2167 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2168
2169 TP_ARGS(inode, map, ret)
2170 )
2171
2172 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
2173 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret),
2174
2175 TP_ARGS(inode, map, ret)
2176 )
2177
2178 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2179
2180 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit,
2181 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2182 ext4_fsblk_t pblk, unsigned int len, int ret),
2183
2184 TP_ARGS(inode, lblk, pblk, len, ret),
2185
2186 TP_STRUCT__entry(
2187 __field( dev_t, dev )
2188 __field( ino_t, ino )
2189 __field( ext4_fsblk_t, pblk )
2190 __field( ext4_lblk_t, lblk )
2191 __field( unsigned int, len )
2192 __field( int, ret )
2193 ),
2194
2195 TP_fast_assign(
2196 tp_assign(dev, inode->i_sb->s_dev)
2197 tp_assign(ino, inode->i_ino)
2198 tp_assign(pblk, pblk)
2199 tp_assign(lblk, lblk)
2200 tp_assign(len, len)
2201 tp_assign(ret, ret)
2202 ),
2203
2204 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d",
2205 MAJOR(__entry->dev), MINOR(__entry->dev),
2206 (unsigned long) __entry->ino,
2207 __entry->lblk, __entry->pblk,
2208 __entry->len, __entry->ret)
2209 )
2210
2211 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
2212 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2213 ext4_fsblk_t pblk, unsigned len, int ret),
2214
2215 TP_ARGS(inode, lblk, pblk, len, ret)
2216 )
2217
2218 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
2219 TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
2220 ext4_fsblk_t pblk, unsigned len, int ret),
2221
2222 TP_ARGS(inode, lblk, pblk, len, ret)
2223 )
2224
2225 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2226
2227 LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent,
2228 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
2229
2230 TP_ARGS(inode, lblk, pblk),
2231
2232 TP_STRUCT__entry(
2233 __field( dev_t, dev )
2234 __field( ino_t, ino )
2235 __field( ext4_fsblk_t, pblk )
2236 __field( ext4_lblk_t, lblk )
2237 ),
2238
2239 TP_fast_assign(
2240 tp_assign(dev, inode->i_sb->s_dev)
2241 tp_assign(ino, inode->i_ino)
2242 tp_assign(pblk, pblk)
2243 tp_assign(lblk, lblk)
2244 ),
2245
2246 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
2247 MAJOR(__entry->dev), MINOR(__entry->dev),
2248 (unsigned long) __entry->ino,
2249 __entry->lblk, __entry->pblk)
2250 )
2251
2252 LTTNG_TRACEPOINT_EVENT(ext4_load_inode,
2253 TP_PROTO(struct inode *inode),
2254
2255 TP_ARGS(inode),
2256
2257 TP_STRUCT__entry(
2258 __field( dev_t, dev )
2259 __field( ino_t, ino )
2260 ),
2261
2262 TP_fast_assign(
2263 tp_assign(dev, inode->i_sb->s_dev)
2264 tp_assign(ino, inode->i_ino)
2265 ),
2266
2267 TP_printk("dev %d,%d ino %ld",
2268 MAJOR(__entry->dev), MINOR(__entry->dev),
2269 (unsigned long) __entry->ino)
2270 )
2271 #endif
2272
2273 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2274
2275 LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
2276 TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks,
2277 unsigned long IP),
2278
2279 TP_ARGS(sb, blocks, rsv_blocks, IP),
2280
2281 TP_STRUCT__entry(
2282 __field( dev_t, dev )
2283 __field(unsigned long, ip )
2284 __field( int, blocks )
2285 __field( int, rsv_blocks )
2286 ),
2287
2288 TP_fast_assign(
2289 tp_assign(dev, sb->s_dev)
2290 tp_assign(ip, IP)
2291 tp_assign(blocks, blocks)
2292 tp_assign(rsv_blocks, rsv_blocks)
2293 ),
2294
2295 TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF",
2296 MAJOR(__entry->dev), MINOR(__entry->dev),
2297 __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip)
2298 )
2299
2300 LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved,
2301 TP_PROTO(struct super_block *sb, int blocks, unsigned long IP),
2302
2303 TP_ARGS(sb, blocks, IP),
2304
2305 TP_STRUCT__entry(
2306 __field( dev_t, dev )
2307 __field(unsigned long, ip )
2308 __field( int, blocks )
2309 ),
2310
2311 TP_fast_assign(
2312 tp_assign(dev, sb->s_dev)
2313 tp_assign(ip, IP)
2314 tp_assign(blocks, blocks)
2315 ),
2316
2317 TP_printk("dev %d,%d blocks, %d caller %pF",
2318 MAJOR(__entry->dev), MINOR(__entry->dev),
2319 __entry->blocks, (void *)__entry->ip)
2320 )
2321
2322 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
2323
2324 LTTNG_TRACEPOINT_EVENT(ext4_journal_start,
2325 TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP),
2326
2327 TP_ARGS(sb, nblocks, IP),
2328
2329 TP_STRUCT__entry(
2330 __field( dev_t, dev )
2331 __field(unsigned long, ip )
2332 __field( int, nblocks )
2333 ),
2334
2335 TP_fast_assign(
2336 tp_assign(dev, sb->s_dev)
2337 tp_assign(ip, IP)
2338 tp_assign(nblocks, nblocks)
2339 ),
2340
2341 TP_printk("dev %d,%d nblocks %d caller %pF",
2342 MAJOR(__entry->dev), MINOR(__entry->dev),
2343 __entry->nblocks, (void *)__entry->ip)
2344 )
2345
2346 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim,
2347 TP_PROTO(struct super_block *sb,
2348 ext4_group_t group,
2349 ext4_grpblk_t start,
2350 ext4_grpblk_t len),
2351
2352 TP_ARGS(sb, group, start, len),
2353
2354 TP_STRUCT__entry(
2355 __field( int, dev_major )
2356 __field( int, dev_minor )
2357 __field( __u32, group )
2358 __field( int, start )
2359 __field( int, len )
2360 ),
2361
2362 TP_fast_assign(
2363 tp_assign(dev_major, MAJOR(sb->s_dev))
2364 tp_assign(dev_minor, MINOR(sb->s_dev))
2365 tp_assign(group, group)
2366 tp_assign(start, start)
2367 tp_assign(len, len)
2368 ),
2369
2370 TP_printk("dev %d,%d group %u, start %d, len %d",
2371 __entry->dev_major, __entry->dev_minor,
2372 __entry->group, __entry->start, __entry->len)
2373 )
2374
2375 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_extent,
2376
2377 TP_PROTO(struct super_block *sb,
2378 ext4_group_t group,
2379 ext4_grpblk_t start,
2380 ext4_grpblk_t len),
2381
2382 TP_ARGS(sb, group, start, len)
2383 )
2384
2385 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_all_free,
2386
2387 TP_PROTO(struct super_block *sb,
2388 ext4_group_t group,
2389 ext4_grpblk_t start,
2390 ext4_grpblk_t len),
2391
2392 TP_ARGS(sb, group, start, len)
2393 )
2394 #endif
2395
2396 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
2397
2398 LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents,
2399 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2400 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags,
2401 unsigned int allocated, ext4_fsblk_t newblock),
2402
2403 TP_ARGS(inode, map, flags, allocated, newblock),
2404 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2405 TP_PROTO(struct inode *inode, struct ext4_map_blocks *map,
2406 unsigned int allocated, ext4_fsblk_t newblock),
2407
2408 TP_ARGS(inode, map, allocated, newblock),
2409 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2410
2411 TP_STRUCT__entry(
2412 __field( dev_t, dev )
2413 __field( ino_t, ino )
2414 __field( int, flags )
2415 __field( ext4_lblk_t, lblk )
2416 __field( ext4_fsblk_t, pblk )
2417 __field( unsigned int, len )
2418 __field( unsigned int, allocated )
2419 __field( ext4_fsblk_t, newblk )
2420 ),
2421
2422 TP_fast_assign(
2423 tp_assign(dev, inode->i_sb->s_dev)
2424 tp_assign(ino, inode->i_ino)
2425 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
2426 tp_assign(flags, flags)
2427 #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2428 tp_assign(flags, map->m_flags)
2429 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */
2430 tp_assign(lblk, map->m_lblk)
2431 tp_assign(pblk, map->m_pblk)
2432 tp_assign(len, map->m_len)
2433 tp_assign(allocated, allocated)
2434 tp_assign(newblk, newblock)
2435 ),
2436
2437 TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d"
2438 "allocated %d newblock %llu",
2439 MAJOR(__entry->dev), MINOR(__entry->dev),
2440 (unsigned long) __entry->ino,
2441 (unsigned) __entry->lblk, (unsigned long long) __entry->pblk,
2442 __entry->len, __entry->flags,
2443 (unsigned int) __entry->allocated,
2444 (unsigned long long) __entry->newblk)
2445 )
2446
2447 LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit,
2448 TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret),
2449
2450 TP_ARGS(sb, map, ret),
2451
2452 TP_STRUCT__entry(
2453 __field( dev_t, dev )
2454 __field( unsigned int, flags )
2455 __field( ext4_lblk_t, lblk )
2456 __field( ext4_fsblk_t, pblk )
2457 __field( unsigned int, len )
2458 __field( int, ret )
2459 ),
2460
2461 TP_fast_assign(
2462 tp_assign(dev, sb->s_dev)
2463 tp_assign(flags, map->m_flags)
2464 tp_assign(lblk, map->m_lblk)
2465 tp_assign(pblk, map->m_pblk)
2466 tp_assign(len, map->m_len)
2467 tp_assign(ret, ret)
2468 ),
2469
2470 TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d",
2471 MAJOR(__entry->dev), MINOR(__entry->dev),
2472 __entry->lblk, (unsigned long long) __entry->pblk,
2473 __entry->len, __entry->flags, __entry->ret)
2474 )
2475
2476 LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache,
2477 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len,
2478 ext4_fsblk_t start),
2479
2480 TP_ARGS(inode, lblk, len, start),
2481
2482 TP_STRUCT__entry(
2483 __field( dev_t, dev )
2484 __field( ino_t, ino )
2485 __field( ext4_lblk_t, lblk )
2486 __field( unsigned int, len )
2487 __field( ext4_fsblk_t, start )
2488 ),
2489
2490 TP_fast_assign(
2491 tp_assign(dev, inode->i_sb->s_dev)
2492 tp_assign(ino, inode->i_ino)
2493 tp_assign(lblk, lblk)
2494 tp_assign(len, len)
2495 tp_assign(start, start)
2496 ),
2497
2498 TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu",
2499 MAJOR(__entry->dev), MINOR(__entry->dev),
2500 (unsigned long) __entry->ino,
2501 (unsigned) __entry->lblk,
2502 __entry->len,
2503 (unsigned long long) __entry->start)
2504 )
2505
2506 LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache,
2507 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret),
2508
2509 TP_ARGS(inode, lblk, ret),
2510
2511 TP_STRUCT__entry(
2512 __field( dev_t, dev )
2513 __field( ino_t, ino )
2514 __field( ext4_lblk_t, lblk )
2515 __field( int, ret )
2516 ),
2517
2518 TP_fast_assign(
2519 tp_assign(dev, inode->i_sb->s_dev)
2520 tp_assign(ino, inode->i_ino)
2521 tp_assign(lblk, lblk)
2522 tp_assign(ret, ret)
2523 ),
2524
2525 TP_printk("dev %d,%d ino %lu lblk %u ret %d",
2526 MAJOR(__entry->dev), MINOR(__entry->dev),
2527 (unsigned long) __entry->ino,
2528 (unsigned) __entry->lblk,
2529 __entry->ret)
2530
2531 )
2532
2533 LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range,
2534 TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to,
2535 int reverse, int found, ext4_lblk_t found_blk),
2536
2537 TP_ARGS(inode, from, to, reverse, found, found_blk),
2538
2539 TP_STRUCT__entry(
2540 __field( dev_t, dev )
2541 __field( ino_t, ino )
2542 __field( ext4_lblk_t, from )
2543 __field( ext4_lblk_t, to )
2544 __field( int, reverse )
2545 __field( int, found )
2546 __field( ext4_lblk_t, found_blk )
2547 ),
2548
2549 TP_fast_assign(
2550 tp_assign(dev, inode->i_sb->s_dev)
2551 tp_assign(ino, inode->i_ino)
2552 tp_assign(from, from)
2553 tp_assign(to, to)
2554 tp_assign(reverse, reverse)
2555 tp_assign(found, found)
2556 tp_assign(found_blk, found_blk)
2557 ),
2558
2559 TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d "
2560 "(blk = %u)",
2561 MAJOR(__entry->dev), MINOR(__entry->dev),
2562 (unsigned long) __entry->ino,
2563 (unsigned) __entry->from, (unsigned) __entry->to,
2564 __entry->reverse, __entry->found,
2565 (unsigned) __entry->found_blk)
2566 )
2567
2568 LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc,
2569 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len),
2570
2571 TP_ARGS(inode, lblk, len),
2572
2573 TP_STRUCT__entry(
2574 __field( dev_t, dev )
2575 __field( ino_t, ino )
2576 __field( ext4_lblk_t, lblk )
2577 __field( unsigned int, len )
2578 ),
2579
2580 TP_fast_assign(
2581 tp_assign(dev, inode->i_sb->s_dev)
2582 tp_assign(ino, inode->i_ino)
2583 tp_assign(lblk, lblk)
2584 tp_assign(len, len)
2585 ),
2586
2587 TP_printk("dev %d,%d ino %lu lblk %u len %u",
2588 MAJOR(__entry->dev), MINOR(__entry->dev),
2589 (unsigned long) __entry->ino,
2590 (unsigned) __entry->lblk,
2591 __entry->len)
2592 )
2593
2594 LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
2595 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk,
2596 unsigned short len),
2597
2598 TP_ARGS(inode, lblk, pblk, len),
2599
2600 TP_STRUCT__entry(
2601 __field( dev_t, dev )
2602 __field( ino_t, ino )
2603 __field( ext4_fsblk_t, pblk )
2604 __field( ext4_lblk_t, lblk )
2605 __field( unsigned short, len )
2606 ),
2607
2608 TP_fast_assign(
2609 tp_assign(dev, inode->i_sb->s_dev)
2610 tp_assign(ino, inode->i_ino)
2611 tp_assign(pblk, pblk)
2612 tp_assign(lblk, lblk)
2613 tp_assign(len, len)
2614 ),
2615
2616 TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u",
2617 MAJOR(__entry->dev), MINOR(__entry->dev),
2618 (unsigned long) __entry->ino,
2619 (unsigned) __entry->lblk,
2620 (unsigned long long) __entry->pblk,
2621 (unsigned short) __entry->len)
2622 )
2623
2624 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2625
2626 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
2627 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
2628 ext4_lblk_t from, ext4_fsblk_t to,
2629 long long partial_cluster),
2630
2631 TP_ARGS(inode, ex, from, to, partial_cluster),
2632
2633 TP_STRUCT__entry(
2634 __field( dev_t, dev )
2635 __field( ino_t, ino )
2636 __field( ext4_lblk_t, from )
2637 __field( ext4_lblk_t, to )
2638 __field( long long, partial )
2639 __field( ext4_fsblk_t, ee_pblk )
2640 __field( ext4_lblk_t, ee_lblk )
2641 __field( unsigned short, ee_len )
2642 ),
2643
2644 TP_fast_assign(
2645 tp_assign(dev, inode->i_sb->s_dev)
2646 tp_assign(ino, inode->i_ino)
2647 tp_assign(from, from)
2648 tp_assign(to, to)
2649 tp_assign(partial, partial_cluster)
2650 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2651 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2652 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2653 ),
2654
2655 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
2656 "from %u to %u partial_cluster %lld",
2657 MAJOR(__entry->dev), MINOR(__entry->dev),
2658 (unsigned long) __entry->ino,
2659 (unsigned) __entry->ee_lblk,
2660 (unsigned long long) __entry->ee_pblk,
2661 (unsigned short) __entry->ee_len,
2662 (unsigned) __entry->from,
2663 (unsigned) __entry->to,
2664 (long long) __entry->partial)
2665 )
2666
2667 #else
2668
2669 LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
2670 TP_PROTO(struct inode *inode, struct ext4_extent *ex,
2671 ext4_lblk_t from, ext4_fsblk_t to,
2672 ext4_fsblk_t partial_cluster),
2673
2674 TP_ARGS(inode, ex, from, to, partial_cluster),
2675
2676 TP_STRUCT__entry(
2677 __field( dev_t, dev )
2678 __field( ino_t, ino )
2679 __field( ext4_lblk_t, from )
2680 __field( ext4_lblk_t, to )
2681 __field( ext4_fsblk_t, partial )
2682 __field( ext4_fsblk_t, ee_pblk )
2683 __field( ext4_lblk_t, ee_lblk )
2684 __field( unsigned short, ee_len )
2685 ),
2686
2687 TP_fast_assign(
2688 tp_assign(dev, inode->i_sb->s_dev)
2689 tp_assign(ino, inode->i_ino)
2690 tp_assign(from, from)
2691 tp_assign(to, to)
2692 tp_assign(partial, partial_cluster)
2693 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2694 tp_assign(ee_lblk, cpu_to_le32(ex->ee_block))
2695 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2696 ),
2697
2698 TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]"
2699 "from %u to %u partial_cluster %u",
2700 MAJOR(__entry->dev), MINOR(__entry->dev),
2701 (unsigned long) __entry->ino,
2702 (unsigned) __entry->ee_lblk,
2703 (unsigned long long) __entry->ee_pblk,
2704 (unsigned short) __entry->ee_len,
2705 (unsigned) __entry->from,
2706 (unsigned) __entry->to,
2707 (unsigned) __entry->partial)
2708 )
2709
2710 #endif
2711
2712 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2713
2714 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
2715 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2716 struct ext4_extent *ex,
2717 long long partial_cluster),
2718
2719 TP_ARGS(inode, start, ex, partial_cluster),
2720
2721 TP_STRUCT__entry(
2722 __field( dev_t, dev )
2723 __field( ino_t, ino )
2724 __field( long long, partial )
2725 __field( ext4_lblk_t, start )
2726 __field( ext4_lblk_t, ee_lblk )
2727 __field( ext4_fsblk_t, ee_pblk )
2728 __field( short, ee_len )
2729 ),
2730
2731 TP_fast_assign(
2732 tp_assign(dev, inode->i_sb->s_dev)
2733 tp_assign(ino, inode->i_ino)
2734 tp_assign(partial, partial_cluster)
2735 tp_assign(start, start)
2736 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2737 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2738 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2739 ),
2740
2741 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
2742 "partial_cluster %lld",
2743 MAJOR(__entry->dev), MINOR(__entry->dev),
2744 (unsigned long) __entry->ino,
2745 (unsigned) __entry->start,
2746 (unsigned) __entry->ee_lblk,
2747 (unsigned long long) __entry->ee_pblk,
2748 (unsigned short) __entry->ee_len,
2749 (long long) __entry->partial)
2750 )
2751
2752 #else
2753
2754 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
2755 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2756 struct ext4_extent *ex, ext4_fsblk_t partial_cluster),
2757
2758 TP_ARGS(inode, start, ex, partial_cluster),
2759
2760 TP_STRUCT__entry(
2761 __field( dev_t, dev )
2762 __field( ino_t, ino )
2763 __field( ext4_fsblk_t, partial )
2764 __field( ext4_lblk_t, start )
2765 __field( ext4_lblk_t, ee_lblk )
2766 __field( ext4_fsblk_t, ee_pblk )
2767 __field( short, ee_len )
2768 ),
2769
2770 TP_fast_assign(
2771 tp_assign(dev, inode->i_sb->s_dev)
2772 tp_assign(ino, inode->i_ino)
2773 tp_assign(partial, partial_cluster)
2774 tp_assign(start, start)
2775 tp_assign(ee_lblk, le32_to_cpu(ex->ee_block))
2776 tp_assign(ee_pblk, ext4_ext_pblock(ex))
2777 tp_assign(ee_len, ext4_ext_get_actual_len(ex))
2778 ),
2779
2780 TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]"
2781 "partial_cluster %u",
2782 MAJOR(__entry->dev), MINOR(__entry->dev),
2783 (unsigned long) __entry->ino,
2784 (unsigned) __entry->start,
2785 (unsigned) __entry->ee_lblk,
2786 (unsigned long long) __entry->ee_pblk,
2787 (unsigned short) __entry->ee_len,
2788 (unsigned) __entry->partial)
2789 )
2790
2791 #endif
2792
2793 LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx,
2794 TP_PROTO(struct inode *inode, ext4_fsblk_t pblk),
2795
2796 TP_ARGS(inode, pblk),
2797
2798 TP_STRUCT__entry(
2799 __field( dev_t, dev )
2800 __field( ino_t, ino )
2801 __field( ext4_fsblk_t, pblk )
2802 ),
2803
2804 TP_fast_assign(
2805 tp_assign(dev, inode->i_sb->s_dev)
2806 tp_assign(ino, inode->i_ino)
2807 tp_assign(pblk, pblk)
2808 ),
2809
2810 TP_printk("dev %d,%d ino %lu index_pblk %llu",
2811 MAJOR(__entry->dev), MINOR(__entry->dev),
2812 (unsigned long) __entry->ino,
2813 (unsigned long long) __entry->pblk)
2814 )
2815
2816 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2817
2818 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
2819 TP_PROTO(struct inode *inode, ext4_lblk_t start,
2820 ext4_lblk_t end, int depth),
2821
2822 TP_ARGS(inode, start, end, depth),
2823
2824 TP_STRUCT__entry(
2825 __field( dev_t, dev )
2826 __field( ino_t, ino )
2827 __field( ext4_lblk_t, start )
2828 __field( ext4_lblk_t, end )
2829 __field( int, depth )
2830 ),
2831
2832 TP_fast_assign(
2833 tp_assign(dev, inode->i_sb->s_dev)
2834 tp_assign(ino, inode->i_ino)
2835 tp_assign(start, start)
2836 tp_assign(end, end)
2837 tp_assign(depth, depth)
2838 ),
2839
2840 TP_printk("dev %d,%d ino %lu since %u end %u depth %d",
2841 MAJOR(__entry->dev), MINOR(__entry->dev),
2842 (unsigned long) __entry->ino,
2843 (unsigned) __entry->start,
2844 (unsigned) __entry->end,
2845 __entry->depth)
2846 )
2847
2848 #else
2849
2850 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
2851 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth),
2852
2853 TP_ARGS(inode, start, depth),
2854
2855 TP_STRUCT__entry(
2856 __field( dev_t, dev )
2857 __field( ino_t, ino )
2858 __field( ext4_lblk_t, start )
2859 __field( int, depth )
2860 ),
2861
2862 TP_fast_assign(
2863 tp_assign(dev, inode->i_sb->s_dev)
2864 tp_assign(ino, inode->i_ino)
2865 tp_assign(start, start)
2866 tp_assign(depth, depth)
2867 ),
2868
2869 TP_printk("dev %d,%d ino %lu since %u depth %d",
2870 MAJOR(__entry->dev), MINOR(__entry->dev),
2871 (unsigned long) __entry->ino,
2872 (unsigned) __entry->start,
2873 __entry->depth)
2874 )
2875
2876 #endif
2877
2878 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
2879
2880 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
2881 TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
2882 int depth, long long partial, __le16 eh_entries),
2883
2884 TP_ARGS(inode, start, end, depth, partial, eh_entries),
2885
2886 TP_STRUCT__entry(
2887 __field( dev_t, dev )
2888 __field( ino_t, ino )
2889 __field( ext4_lblk_t, start )
2890 __field( ext4_lblk_t, end )
2891 __field( int, depth )
2892 __field( long long, partial )
2893 __field( unsigned short, eh_entries )
2894 ),
2895
2896 TP_fast_assign(
2897 tp_assign(dev, inode->i_sb->s_dev)
2898 tp_assign(ino, inode->i_ino)
2899 tp_assign(start, start)
2900 tp_assign(end, end)
2901 tp_assign(depth, depth)
2902 tp_assign(partial, partial)
2903 tp_assign(eh_entries, le16_to_cpu(eh_entries))
2904 ),
2905
2906 TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld "
2907 "remaining_entries %u",
2908 MAJOR(__entry->dev), MINOR(__entry->dev),
2909 (unsigned long) __entry->ino,
2910 (unsigned) __entry->start,
2911 (unsigned) __entry->end,
2912 __entry->depth,
2913 (long long) __entry->partial,
2914 (unsigned short) __entry->eh_entries)
2915 )
2916
2917 #else
2918
2919 LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
2920 TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth,
2921 ext4_lblk_t partial, unsigned short eh_entries),
2922
2923 TP_ARGS(inode, start, depth, partial, eh_entries),
2924
2925 TP_STRUCT__entry(
2926 __field( dev_t, dev )
2927 __field( ino_t, ino )
2928 __field( ext4_lblk_t, start )
2929 __field( int, depth )
2930 __field( ext4_lblk_t, partial )
2931 __field( unsigned short, eh_entries )
2932 ),
2933
2934 TP_fast_assign(
2935 tp_assign(dev, inode->i_sb->s_dev)
2936 tp_assign(ino, inode->i_ino)
2937 tp_assign(start, start)
2938 tp_assign(depth, depth)
2939 tp_assign(partial, partial)
2940 tp_assign(eh_entries, eh_entries)
2941 ),
2942
2943 TP_printk("dev %d,%d ino %lu since %u depth %d partial %u "
2944 "remaining_entries %u",
2945 MAJOR(__entry->dev), MINOR(__entry->dev),
2946 (unsigned long) __entry->ino,
2947 (unsigned) __entry->start,
2948 __entry->depth,
2949 (unsigned) __entry->partial,
2950 (unsigned short) __entry->eh_entries)
2951 )
2952
2953 #endif
2954
2955 #endif
2956
2957 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
2958
2959 LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent,
2960 TP_PROTO(struct inode *inode, struct extent_status *es),
2961
2962 TP_ARGS(inode, es),
2963
2964 TP_STRUCT__entry(
2965 __field( dev_t, dev )
2966 __field( ino_t, ino )
2967 __field( ext4_lblk_t, lblk )
2968 __field( ext4_lblk_t, len )
2969 __field( ext4_fsblk_t, pblk )
2970 __field( char, status )
2971 ),
2972
2973 TP_fast_assign(
2974 tp_assign(dev, inode->i_sb->s_dev)
2975 tp_assign(ino, inode->i_ino)
2976 tp_assign(lblk, es->es_lblk)
2977 tp_assign(len, es->es_len)
2978 tp_assign(pblk, ext4_es_pblock(es))
2979 tp_assign(status, ext4_es_status(es))
2980 ),
2981
2982 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
2983 MAJOR(__entry->dev), MINOR(__entry->dev),
2984 (unsigned long) __entry->ino,
2985 __entry->lblk, __entry->len,
2986 __entry->pblk, show_extent_status(__entry->status))
2987 )
2988
2989 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent,
2990 TP_PROTO(struct inode *inode, struct extent_status *es),
2991
2992 TP_ARGS(inode, es)
2993 )
2994
2995 LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_cache_extent,
2996 TP_PROTO(struct inode *inode, struct extent_status *es),
2997
2998 TP_ARGS(inode, es)
2999 )
3000
3001 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
3002
3003 LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent,
3004 TP_PROTO(struct inode *inode, struct extent_status *es),
3005
3006 TP_ARGS(inode, es),
3007
3008 TP_STRUCT__entry(
3009 __field( dev_t, dev )
3010 __field( ino_t, ino )
3011 __field( ext4_lblk_t, lblk )
3012 __field( ext4_lblk_t, len )
3013 __field( ext4_fsblk_t, pblk )
3014 __field( char, status )
3015 ),
3016
3017 TP_fast_assign(
3018 tp_assign(dev, inode->i_sb->s_dev)
3019 tp_assign(ino, inode->i_ino)
3020 tp_assign(lblk, es->es_lblk)
3021 tp_assign(len, es->es_len)
3022 tp_assign(pblk, ext4_es_pblock(es))
3023 tp_assign(status, ext4_es_status(es) >> 60)
3024 ),
3025
3026 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
3027 MAJOR(__entry->dev), MINOR(__entry->dev),
3028 (unsigned long) __entry->ino,
3029 __entry->lblk, __entry->len,
3030 __entry->pblk, show_extent_status(__entry->status))
3031 )
3032
3033 LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent,
3034 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len),
3035
3036 TP_ARGS(inode, lblk, len),
3037
3038 TP_STRUCT__entry(
3039 __field( dev_t, dev )
3040 __field( ino_t, ino )
3041 __field( loff_t, lblk )
3042 __field( loff_t, len )
3043 ),
3044
3045 TP_fast_assign(
3046 tp_assign(dev, inode->i_sb->s_dev)
3047 tp_assign(ino, inode->i_ino)
3048 tp_assign(lblk, lblk)
3049 tp_assign(len, len)
3050 ),
3051
3052 TP_printk("dev %d,%d ino %lu es [%lld/%lld)",
3053 MAJOR(__entry->dev), MINOR(__entry->dev),
3054 (unsigned long) __entry->ino,
3055 __entry->lblk, __entry->len)
3056 )
3057
3058 LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter,
3059 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
3060
3061 TP_ARGS(inode, lblk),
3062
3063 TP_STRUCT__entry(
3064 __field( dev_t, dev )
3065 __field( ino_t, ino )
3066 __field( ext4_lblk_t, lblk )
3067 ),
3068
3069 TP_fast_assign(
3070 tp_assign(dev, inode->i_sb->s_dev)
3071 tp_assign(ino, inode->i_ino)
3072 tp_assign(lblk, lblk)
3073 ),
3074
3075 TP_printk("dev %d,%d ino %lu lblk %u",
3076 MAJOR(__entry->dev), MINOR(__entry->dev),
3077 (unsigned long) __entry->ino, __entry->lblk)
3078 )
3079
3080 LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit,
3081 TP_PROTO(struct inode *inode, struct extent_status *es),
3082
3083 TP_ARGS(inode, es),
3084
3085 TP_STRUCT__entry(
3086 __field( dev_t, dev )
3087 __field( ino_t, ino )
3088 __field( ext4_lblk_t, lblk )
3089 __field( ext4_lblk_t, len )
3090 __field( ext4_fsblk_t, pblk )
3091 __field( char, status )
3092 ),
3093
3094 TP_fast_assign(
3095 tp_assign(dev, inode->i_sb->s_dev)
3096 tp_assign(ino, inode->i_ino)
3097 tp_assign(lblk, es->es_lblk)
3098 tp_assign(len, es->es_len)
3099 tp_assign(pblk, ext4_es_pblock(es))
3100 tp_assign(status, ext4_es_status(es) >> 60)
3101 ),
3102
3103 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
3104 MAJOR(__entry->dev), MINOR(__entry->dev),
3105 (unsigned long) __entry->ino,
3106 __entry->lblk, __entry->len,
3107 __entry->pblk, show_extent_status(__entry->status))
3108 )
3109
3110 LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter,
3111 TP_PROTO(struct inode *inode, ext4_lblk_t lblk),
3112
3113 TP_ARGS(inode, lblk),
3114
3115 TP_STRUCT__entry(
3116 __field( dev_t, dev )
3117 __field( ino_t, ino )
3118 __field( ext4_lblk_t, lblk )
3119 ),
3120
3121 TP_fast_assign(
3122 tp_assign(dev, inode->i_sb->s_dev)
3123 tp_assign(ino, inode->i_ino)
3124 tp_assign(lblk, lblk)
3125 ),
3126
3127 TP_printk("dev %d,%d ino %lu lblk %u",
3128 MAJOR(__entry->dev), MINOR(__entry->dev),
3129 (unsigned long) __entry->ino, __entry->lblk)
3130 )
3131
3132 LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit,
3133 TP_PROTO(struct inode *inode, struct extent_status *es,
3134 int found),
3135
3136 TP_ARGS(inode, es, found),
3137
3138 TP_STRUCT__entry(
3139 __field( dev_t, dev )
3140 __field( ino_t, ino )
3141 __field( ext4_lblk_t, lblk )
3142 __field( ext4_lblk_t, len )
3143 __field( ext4_fsblk_t, pblk )
3144 __field( char, status )
3145 __field( int, found )
3146 ),
3147
3148 TP_fast_assign(
3149 tp_assign(dev, inode->i_sb->s_dev)
3150 tp_assign(ino, inode->i_ino)
3151 tp_assign(lblk, es->es_lblk)
3152 tp_assign(len, es->es_len)
3153 tp_assign(pblk, ext4_es_pblock(es))
3154 tp_assign(status, ext4_es_status(es) >> 60)
3155 tp_assign(found, found)
3156 ),
3157
3158 TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s",
3159 MAJOR(__entry->dev), MINOR(__entry->dev),
3160 (unsigned long) __entry->ino, __entry->found,
3161 __entry->lblk, __entry->len,
3162 __entry->found ? __entry->pblk : 0,
3163 show_extent_status(__entry->found ? __entry->status : 0))
3164 )
3165
3166 LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter,
3167 TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt),
3168
3169 TP_ARGS(sb, nr_to_scan, cache_cnt),
3170
3171 TP_STRUCT__entry(
3172 __field( dev_t, dev )
3173 __field( int, nr_to_scan )
3174 __field( int, cache_cnt )
3175 ),
3176
3177 TP_fast_assign(
3178 tp_assign(dev, sb->s_dev)
3179 tp_assign(nr_to_scan, nr_to_scan)
3180 tp_assign(cache_cnt, cache_cnt)
3181 ),
3182
3183 TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d",
3184 MAJOR(__entry->dev), MINOR(__entry->dev),
3185 __entry->nr_to_scan, __entry->cache_cnt)
3186 )
3187
3188 LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit,
3189 TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt),
3190
3191 TP_ARGS(sb, shrunk_nr, cache_cnt),
3192
3193 TP_STRUCT__entry(
3194 __field( dev_t, dev )
3195 __field( int, shrunk_nr )
3196 __field( int, cache_cnt )
3197 ),
3198
3199 TP_fast_assign(
3200 tp_assign(dev, sb->s_dev)
3201 tp_assign(shrunk_nr, shrunk_nr)
3202 tp_assign(cache_cnt, cache_cnt)
3203 ),
3204
3205 TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d",
3206 MAJOR(__entry->dev), MINOR(__entry->dev),
3207 __entry->shrunk_nr, __entry->cache_cnt)
3208 )
3209
3210 #endif
3211
3212 #endif /* LTTNG_TRACE_EXT4_H */
3213
3214 /* This part must be outside protection */
3215 #include "../../../probes/define_trace.h"
This page took 0.113755 seconds and 4 git commands to generate.