335
315
TP_ARGS(inode, wbc),
337
317
TP_STRUCT__entry(
338
__field( int, dev_major )
339
__field( int, dev_minor )
318
__field( dev_t, dev )
340
319
__field( ino_t, ino )
341
320
__field( long, nr_to_write )
342
321
__field( long, pages_skipped )
343
322
__field( loff_t, range_start )
344
323
__field( loff_t, range_end )
324
__field( int, sync_mode )
345
325
__field( char, for_kupdate )
346
__field( char, for_reclaim )
347
326
__field( char, range_cyclic )
348
327
__field( pgoff_t, writeback_index )
352
__entry->dev_major = MAJOR(inode->i_sb->s_dev);
353
__entry->dev_minor = MINOR(inode->i_sb->s_dev);
331
__entry->dev = inode->i_sb->s_dev;
354
332
__entry->ino = inode->i_ino;
355
333
__entry->nr_to_write = wbc->nr_to_write;
356
334
__entry->pages_skipped = wbc->pages_skipped;
357
335
__entry->range_start = wbc->range_start;
358
336
__entry->range_end = wbc->range_end;
337
__entry->sync_mode = wbc->sync_mode;
359
338
__entry->for_kupdate = wbc->for_kupdate;
360
__entry->for_reclaim = wbc->for_reclaim;
361
339
__entry->range_cyclic = wbc->range_cyclic;
362
340
__entry->writeback_index = inode->i_mapping->writeback_index;
365
343
TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld "
366
"range_start %llu range_end %llu "
367
"for_kupdate %d for_reclaim %d "
368
"range_cyclic %d writeback_index %lu",
369
__entry->dev_major, __entry->dev_minor,
344
"range_start %llu range_end %llu sync_mode %d"
345
"for_kupdate %d range_cyclic %d writeback_index %lu",
346
MAJOR(__entry->dev), MINOR(__entry->dev),
370
347
(unsigned long) __entry->ino, __entry->nr_to_write,
371
348
__entry->pages_skipped, __entry->range_start,
373
__entry->for_kupdate, __entry->for_reclaim,
374
__entry->range_cyclic,
349
__entry->range_end, __entry->sync_mode,
350
__entry->for_kupdate, __entry->range_cyclic,
375
351
(unsigned long) __entry->writeback_index)
419
398
TP_ARGS(inode, wbc, ret, pages_written),
421
400
TP_STRUCT__entry(
422
__field( int, dev_major )
423
__field( int, dev_minor )
401
__field( dev_t, dev )
424
402
__field( ino_t, ino )
425
403
__field( int, ret )
426
404
__field( int, pages_written )
427
405
__field( long, pages_skipped )
406
__field( int, sync_mode )
428
407
__field( char, more_io )
429
408
__field( pgoff_t, writeback_index )
433
__entry->dev_major = MAJOR(inode->i_sb->s_dev);
434
__entry->dev_minor = MINOR(inode->i_sb->s_dev);
412
__entry->dev = inode->i_sb->s_dev;
435
413
__entry->ino = inode->i_ino;
436
414
__entry->ret = ret;
437
415
__entry->pages_written = pages_written;
438
416
__entry->pages_skipped = wbc->pages_skipped;
417
__entry->sync_mode = wbc->sync_mode;
439
418
__entry->more_io = wbc->more_io;
440
419
__entry->writeback_index = inode->i_mapping->writeback_index;
443
TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld more_io %d writeback_index %lu",
444
__entry->dev_major, __entry->dev_minor,
422
TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld "
423
" more_io %d sync_mode %d writeback_index %lu",
424
MAJOR(__entry->dev), MINOR(__entry->dev),
445
425
(unsigned long) __entry->ino, __entry->ret,
446
426
__entry->pages_written, __entry->pages_skipped,
427
__entry->more_io, __entry->sync_mode,
448
428
(unsigned long) __entry->writeback_index)
431
DECLARE_EVENT_CLASS(ext4__page_op,
432
TP_PROTO(struct page *page),
437
__field( pgoff_t, index )
438
__field( ino_t, ino )
439
__field( dev_t, dev )
444
__entry->index = page->index;
445
__entry->ino = page->mapping->host->i_ino;
446
__entry->dev = page->mapping->host->i_sb->s_dev;
449
TP_printk("dev %d,%d ino %lu page_index %lu",
450
MAJOR(__entry->dev), MINOR(__entry->dev),
451
(unsigned long) __entry->ino,
455
DEFINE_EVENT(ext4__page_op, ext4_readpage,
457
TP_PROTO(struct page *page),
462
DEFINE_EVENT(ext4__page_op, ext4_releasepage,
464
TP_PROTO(struct page *page),
469
TRACE_EVENT(ext4_invalidatepage,
470
TP_PROTO(struct page *page, unsigned long offset),
472
TP_ARGS(page, offset),
475
__field( pgoff_t, index )
476
__field( unsigned long, offset )
477
__field( ino_t, ino )
478
__field( dev_t, dev )
483
__entry->index = page->index;
484
__entry->offset = offset;
485
__entry->ino = page->mapping->host->i_ino;
486
__entry->dev = page->mapping->host->i_sb->s_dev;
489
TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
490
MAJOR(__entry->dev), MINOR(__entry->dev),
491
(unsigned long) __entry->ino,
492
__entry->index, __entry->offset)
451
495
TRACE_EVENT(ext4_discard_blocks,
452
496
TP_PROTO(struct super_block *sb, unsigned long long blk,
453
497
unsigned long long count),
764
793
struct dentry *dentry = file->f_path.dentry;
766
__entry->dev_major = MAJOR(dentry->d_inode->i_sb->s_dev);
767
__entry->dev_minor = MINOR(dentry->d_inode->i_sb->s_dev);
795
__entry->dev = dentry->d_inode->i_sb->s_dev;
768
796
__entry->ino = dentry->d_inode->i_ino;
769
797
__entry->datasync = datasync;
770
798
__entry->parent = dentry->d_parent->d_inode->i_ino;
773
801
TP_printk("dev %d,%d ino %ld parent %ld datasync %d ",
774
__entry->dev_major, __entry->dev_minor,
802
MAJOR(__entry->dev), MINOR(__entry->dev),
775
803
(unsigned long) __entry->ino,
776
804
(unsigned long) __entry->parent, __entry->datasync)
807
TRACE_EVENT(ext4_sync_file_exit,
808
TP_PROTO(struct inode *inode, int ret),
814
__field( ino_t, ino )
815
__field( dev_t, dev )
820
__entry->ino = inode->i_ino;
821
__entry->dev = inode->i_sb->s_dev;
824
TP_printk("dev %d,%d ino %ld ret %d",
825
MAJOR(__entry->dev), MINOR(__entry->dev),
826
(unsigned long) __entry->ino,
779
830
TRACE_EVENT(ext4_sync_fs,
780
831
TP_PROTO(struct super_block *sb, int wait),
782
833
TP_ARGS(sb, wait),
784
835
TP_STRUCT__entry(
785
__field( int, dev_major )
786
__field( int, dev_minor )
836
__field( dev_t, dev )
787
837
__field( int, wait )
792
__entry->dev_major = MAJOR(sb->s_dev);
793
__entry->dev_minor = MINOR(sb->s_dev);
842
__entry->dev = sb->s_dev;
794
843
__entry->wait = wait;
797
TP_printk("dev %d,%d wait %d", __entry->dev_major,
798
__entry->dev_minor, __entry->wait)
846
TP_printk("dev %d,%d wait %d",
847
MAJOR(__entry->dev), MINOR(__entry->dev),
801
851
TRACE_EVENT(ext4_alloc_da_blocks,
1166
1204
TP_ARGS(sb, group)
1207
DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load,
1209
TP_PROTO(struct super_block *sb, unsigned long group),
1214
DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap,
1216
TP_PROTO(struct super_block *sb, unsigned long group),
1221
TRACE_EVENT(ext4_direct_IO_enter,
1222
TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
1224
TP_ARGS(inode, offset, len, rw),
1227
__field( ino_t, ino )
1228
__field( dev_t, dev )
1229
__field( loff_t, pos )
1230
__field( unsigned long, len )
1235
__entry->ino = inode->i_ino;
1236
__entry->dev = inode->i_sb->s_dev;
1237
__entry->pos = offset;
1242
TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
1243
MAJOR(__entry->dev), MINOR(__entry->dev),
1244
(unsigned long) __entry->ino,
1245
(unsigned long long) __entry->pos, __entry->len, __entry->rw)
1248
TRACE_EVENT(ext4_direct_IO_exit,
1249
TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw, int ret),
1251
TP_ARGS(inode, offset, len, rw, ret),
1254
__field( ino_t, ino )
1255
__field( dev_t, dev )
1256
__field( loff_t, pos )
1257
__field( unsigned long, len )
1263
__entry->ino = inode->i_ino;
1264
__entry->dev = inode->i_sb->s_dev;
1265
__entry->pos = offset;
1271
TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
1272
MAJOR(__entry->dev), MINOR(__entry->dev),
1273
(unsigned long) __entry->ino,
1274
(unsigned long long) __entry->pos, __entry->len,
1275
__entry->rw, __entry->ret)
1278
TRACE_EVENT(ext4_fallocate_enter,
1279
TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode),
1281
TP_ARGS(inode, offset, len, mode),
1284
__field( ino_t, ino )
1285
__field( dev_t, dev )
1286
__field( loff_t, pos )
1287
__field( loff_t, len )
1288
__field( int, mode )
1292
__entry->ino = inode->i_ino;
1293
__entry->dev = inode->i_sb->s_dev;
1294
__entry->pos = offset;
1296
__entry->mode = mode;
1299
TP_printk("dev %d,%d ino %ld pos %llu len %llu mode %d",
1300
MAJOR(__entry->dev), MINOR(__entry->dev),
1301
(unsigned long) __entry->ino,
1302
(unsigned long long) __entry->pos,
1303
(unsigned long long) __entry->len, __entry->mode)
1306
TRACE_EVENT(ext4_fallocate_exit,
1307
TP_PROTO(struct inode *inode, loff_t offset, unsigned int max_blocks, int ret),
1309
TP_ARGS(inode, offset, max_blocks, ret),
1312
__field( ino_t, ino )
1313
__field( dev_t, dev )
1314
__field( loff_t, pos )
1315
__field( unsigned, blocks )
1320
__entry->ino = inode->i_ino;
1321
__entry->dev = inode->i_sb->s_dev;
1322
__entry->pos = offset;
1323
__entry->blocks = max_blocks;
1327
TP_printk("dev %d,%d ino %ld pos %llu blocks %d ret %d",
1328
MAJOR(__entry->dev), MINOR(__entry->dev),
1329
(unsigned long) __entry->ino,
1330
(unsigned long long) __entry->pos, __entry->blocks,
1334
TRACE_EVENT(ext4_unlink_enter,
1335
TP_PROTO(struct inode *parent, struct dentry *dentry),
1337
TP_ARGS(parent, dentry),
1340
__field( ino_t, parent )
1341
__field( ino_t, ino )
1342
__field( loff_t, size )
1343
__field( dev_t, dev )
1347
__entry->parent = parent->i_ino;
1348
__entry->ino = dentry->d_inode->i_ino;
1349
__entry->size = dentry->d_inode->i_size;
1350
__entry->dev = dentry->d_inode->i_sb->s_dev;
1353
TP_printk("dev %d,%d ino %ld size %lld parent %ld",
1354
MAJOR(__entry->dev), MINOR(__entry->dev),
1355
(unsigned long) __entry->ino, __entry->size,
1356
(unsigned long) __entry->parent)
1359
TRACE_EVENT(ext4_unlink_exit,
1360
TP_PROTO(struct dentry *dentry, int ret),
1362
TP_ARGS(dentry, ret),
1365
__field( ino_t, ino )
1366
__field( dev_t, dev )
1371
__entry->ino = dentry->d_inode->i_ino;
1372
__entry->dev = dentry->d_inode->i_sb->s_dev;
1376
TP_printk("dev %d,%d ino %ld ret %d",
1377
MAJOR(__entry->dev), MINOR(__entry->dev),
1378
(unsigned long) __entry->ino,
1382
DECLARE_EVENT_CLASS(ext4__truncate,
1383
TP_PROTO(struct inode *inode),
1388
__field( ino_t, ino )
1389
__field( dev_t, dev )
1390
__field( blkcnt_t, blocks )
1394
__entry->ino = inode->i_ino;
1395
__entry->dev = inode->i_sb->s_dev;
1396
__entry->blocks = inode->i_blocks;
1399
TP_printk("dev %d,%d ino %lu blocks %lu",
1400
MAJOR(__entry->dev), MINOR(__entry->dev),
1401
(unsigned long) __entry->ino, (unsigned long) __entry->blocks)
1404
DEFINE_EVENT(ext4__truncate, ext4_truncate_enter,
1406
TP_PROTO(struct inode *inode),
1411
DEFINE_EVENT(ext4__truncate, ext4_truncate_exit,
1413
TP_PROTO(struct inode *inode),
1418
DECLARE_EVENT_CLASS(ext4__map_blocks_enter,
1419
TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1420
unsigned len, unsigned flags),
1422
TP_ARGS(inode, lblk, len, flags),
1425
__field( ino_t, ino )
1426
__field( dev_t, dev )
1427
__field( ext4_lblk_t, lblk )
1428
__field( unsigned, len )
1429
__field( unsigned, flags )
1433
__entry->ino = inode->i_ino;
1434
__entry->dev = inode->i_sb->s_dev;
1435
__entry->lblk = lblk;
1437
__entry->flags = flags;
1440
TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u",
1441
MAJOR(__entry->dev), MINOR(__entry->dev),
1442
(unsigned long) __entry->ino,
1443
(unsigned) __entry->lblk, __entry->len, __entry->flags)
1446
DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter,
1447
TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1448
unsigned len, unsigned flags),
1450
TP_ARGS(inode, lblk, len, flags)
1453
DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter,
1454
TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1455
unsigned len, unsigned flags),
1457
TP_ARGS(inode, lblk, len, flags)
1460
DECLARE_EVENT_CLASS(ext4__map_blocks_exit,
1461
TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1462
ext4_fsblk_t pblk, unsigned len, int ret),
1464
TP_ARGS(inode, lblk, pblk, len, ret),
1467
__field( ino_t, ino )
1468
__field( dev_t, dev )
1469
__field( ext4_lblk_t, lblk )
1470
__field( ext4_fsblk_t, pblk )
1471
__field( unsigned, len )
1476
__entry->ino = inode->i_ino;
1477
__entry->dev = inode->i_sb->s_dev;
1478
__entry->lblk = lblk;
1479
__entry->pblk = pblk;
1484
TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d",
1485
MAJOR(__entry->dev), MINOR(__entry->dev),
1486
(unsigned long) __entry->ino,
1487
(unsigned) __entry->lblk, (unsigned long long) __entry->pblk,
1488
__entry->len, __entry->ret)
1491
DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit,
1492
TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1493
ext4_fsblk_t pblk, unsigned len, int ret),
1495
TP_ARGS(inode, lblk, pblk, len, ret)
1498
DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit,
1499
TP_PROTO(struct inode *inode, ext4_lblk_t lblk,
1500
ext4_fsblk_t pblk, unsigned len, int ret),
1502
TP_ARGS(inode, lblk, pblk, len, ret)
1505
TRACE_EVENT(ext4_ext_load_extent,
1506
TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk),
1508
TP_ARGS(inode, lblk, pblk),
1511
__field( ino_t, ino )
1512
__field( dev_t, dev )
1513
__field( ext4_lblk_t, lblk )
1514
__field( ext4_fsblk_t, pblk )
1518
__entry->ino = inode->i_ino;
1519
__entry->dev = inode->i_sb->s_dev;
1520
__entry->lblk = lblk;
1521
__entry->pblk = pblk;
1524
TP_printk("dev %d,%d ino %lu lblk %u pblk %llu",
1525
MAJOR(__entry->dev), MINOR(__entry->dev),
1526
(unsigned long) __entry->ino,
1527
(unsigned) __entry->lblk, (unsigned long long) __entry->pblk)
1530
TRACE_EVENT(ext4_load_inode,
1531
TP_PROTO(struct inode *inode),
1536
__field( ino_t, ino )
1537
__field( dev_t, dev )
1541
__entry->ino = inode->i_ino;
1542
__entry->dev = inode->i_sb->s_dev;
1545
TP_printk("dev %d,%d ino %ld",
1546
MAJOR(__entry->dev), MINOR(__entry->dev),
1547
(unsigned long) __entry->ino)
1169
1550
#endif /* _TRACE_EXT4_H */
1171
1552
/* This part must be outside protection */