19bffad1eSTheodore Ts'o #undef TRACE_SYSTEM 29bffad1eSTheodore Ts'o #define TRACE_SYSTEM ext4 39bffad1eSTheodore Ts'o 4d0b6e04aSLi Zefan #if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) 5d0b6e04aSLi Zefan #define _TRACE_EXT4_H 6d0b6e04aSLi Zefan 79bffad1eSTheodore Ts'o #include <linux/writeback.h> 89bffad1eSTheodore Ts'o #include <linux/tracepoint.h> 99bffad1eSTheodore Ts'o 103661d286STheodore Ts'o struct ext4_allocation_context; 113661d286STheodore Ts'o struct ext4_allocation_request; 126f91bc5fSEric Gouriou struct ext4_extent; 133661d286STheodore Ts'o struct ext4_prealloc_space; 14fb40ba0dSTheodore Ts'o struct ext4_inode_info; 150ef12249SJosh Stone struct mpage_da_data; 16d8990240SAditya Kali struct ext4_map_blocks; 17d8990240SAditya Kali struct ext4_extent; 18fb40ba0dSTheodore Ts'o 19fb40ba0dSTheodore Ts'o #define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) 203661d286STheodore Ts'o 219bffad1eSTheodore Ts'o TRACE_EVENT(ext4_free_inode, 229bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode), 239bffad1eSTheodore Ts'o 249bffad1eSTheodore Ts'o TP_ARGS(inode), 259bffad1eSTheodore Ts'o 269bffad1eSTheodore Ts'o TP_STRUCT__entry( 270562e0baSJiaying Zhang __field( dev_t, dev ) 289bffad1eSTheodore Ts'o __field( ino_t, ino ) 299bffad1eSTheodore Ts'o __field( uid_t, uid ) 309bffad1eSTheodore Ts'o __field( gid_t, gid ) 31a9c667f8SLukas Czerner __field( __u64, blocks ) 32210c0526SAnatol Pomozov __field( __u16, mode ) 339bffad1eSTheodore Ts'o ), 349bffad1eSTheodore Ts'o 359bffad1eSTheodore Ts'o TP_fast_assign( 360562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 379bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 3808cefc7aSEric W. Biederman __entry->uid = i_uid_read(inode); 3908cefc7aSEric W. Biederman __entry->gid = i_gid_read(inode); 409bffad1eSTheodore Ts'o __entry->blocks = inode->i_blocks; 41210c0526SAnatol Pomozov __entry->mode = inode->i_mode; 429bffad1eSTheodore Ts'o ), 439bffad1eSTheodore Ts'o 44a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", 450562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 46a9c667f8SLukas Czerner (unsigned long) __entry->ino, __entry->mode, 47a9c667f8SLukas Czerner __entry->uid, __entry->gid, __entry->blocks) 489bffad1eSTheodore Ts'o ); 499bffad1eSTheodore Ts'o 509bffad1eSTheodore Ts'o TRACE_EVENT(ext4_request_inode, 519bffad1eSTheodore Ts'o TP_PROTO(struct inode *dir, int mode), 529bffad1eSTheodore Ts'o 539bffad1eSTheodore Ts'o TP_ARGS(dir, mode), 549bffad1eSTheodore Ts'o 559bffad1eSTheodore Ts'o TP_STRUCT__entry( 560562e0baSJiaying Zhang __field( dev_t, dev ) 579bffad1eSTheodore Ts'o __field( ino_t, dir ) 5859be8e72STheodore Ts'o __field( __u16, mode ) 599bffad1eSTheodore Ts'o ), 609bffad1eSTheodore Ts'o 619bffad1eSTheodore Ts'o TP_fast_assign( 620562e0baSJiaying Zhang __entry->dev = dir->i_sb->s_dev; 639bffad1eSTheodore Ts'o __entry->dir = dir->i_ino; 649bffad1eSTheodore Ts'o __entry->mode = mode; 659bffad1eSTheodore Ts'o ), 669bffad1eSTheodore Ts'o 67a269029dSTheodore Ts'o TP_printk("dev %d,%d dir %lu mode 0%o", 680562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 69a269029dSTheodore Ts'o (unsigned long) __entry->dir, __entry->mode) 709bffad1eSTheodore Ts'o ); 719bffad1eSTheodore Ts'o 729bffad1eSTheodore Ts'o TRACE_EVENT(ext4_allocate_inode, 739bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, struct inode *dir, int mode), 749bffad1eSTheodore Ts'o 759bffad1eSTheodore Ts'o TP_ARGS(inode, dir, mode), 769bffad1eSTheodore Ts'o 779bffad1eSTheodore Ts'o TP_STRUCT__entry( 780562e0baSJiaying Zhang __field( dev_t, dev ) 799bffad1eSTheodore Ts'o __field( ino_t, ino ) 809bffad1eSTheodore Ts'o __field( ino_t, dir ) 8159be8e72STheodore Ts'o __field( __u16, mode ) 829bffad1eSTheodore Ts'o ), 839bffad1eSTheodore Ts'o 849bffad1eSTheodore Ts'o TP_fast_assign( 850562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 869bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 879bffad1eSTheodore Ts'o __entry->dir = dir->i_ino; 889bffad1eSTheodore Ts'o __entry->mode = mode; 899bffad1eSTheodore Ts'o ), 909bffad1eSTheodore Ts'o 91a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", 920562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 93a269029dSTheodore Ts'o (unsigned long) __entry->ino, 94a3710fd1STheodore Ts'o (unsigned long) __entry->dir, __entry->mode) 959bffad1eSTheodore Ts'o ); 969bffad1eSTheodore Ts'o 977ff9c073STheodore Ts'o TRACE_EVENT(ext4_evict_inode, 987ff9c073STheodore Ts'o TP_PROTO(struct inode *inode), 997ff9c073STheodore Ts'o 1007ff9c073STheodore Ts'o TP_ARGS(inode), 1017ff9c073STheodore Ts'o 1027ff9c073STheodore Ts'o TP_STRUCT__entry( 1030562e0baSJiaying Zhang __field( dev_t, dev ) 1047ff9c073STheodore Ts'o __field( ino_t, ino ) 1057ff9c073STheodore Ts'o __field( int, nlink ) 1067ff9c073STheodore Ts'o ), 1077ff9c073STheodore Ts'o 1087ff9c073STheodore Ts'o TP_fast_assign( 1090562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1107ff9c073STheodore Ts'o __entry->ino = inode->i_ino; 1117ff9c073STheodore Ts'o __entry->nlink = inode->i_nlink; 1127ff9c073STheodore Ts'o ), 1137ff9c073STheodore Ts'o 1147ff9c073STheodore Ts'o TP_printk("dev %d,%d ino %lu nlink %d", 1150562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1167ff9c073STheodore Ts'o (unsigned long) __entry->ino, __entry->nlink) 1177ff9c073STheodore Ts'o ); 1187ff9c073STheodore Ts'o 1197ff9c073STheodore Ts'o TRACE_EVENT(ext4_drop_inode, 1207ff9c073STheodore Ts'o TP_PROTO(struct inode *inode, int drop), 1217ff9c073STheodore Ts'o 1227ff9c073STheodore Ts'o TP_ARGS(inode, drop), 1237ff9c073STheodore Ts'o 1247ff9c073STheodore Ts'o TP_STRUCT__entry( 1250562e0baSJiaying Zhang __field( dev_t, dev ) 1267ff9c073STheodore Ts'o __field( ino_t, ino ) 1277ff9c073STheodore Ts'o __field( int, drop ) 1287ff9c073STheodore Ts'o ), 1297ff9c073STheodore Ts'o 1307ff9c073STheodore Ts'o TP_fast_assign( 1310562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1327ff9c073STheodore Ts'o __entry->ino = inode->i_ino; 1337ff9c073STheodore Ts'o __entry->drop = drop; 1347ff9c073STheodore Ts'o ), 1357ff9c073STheodore Ts'o 1367ff9c073STheodore Ts'o TP_printk("dev %d,%d ino %lu drop %d", 1370562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1387ff9c073STheodore Ts'o (unsigned long) __entry->ino, __entry->drop) 1397ff9c073STheodore Ts'o ); 1407ff9c073STheodore Ts'o 1417ff9c073STheodore Ts'o TRACE_EVENT(ext4_mark_inode_dirty, 1427ff9c073STheodore Ts'o TP_PROTO(struct inode *inode, unsigned long IP), 1437ff9c073STheodore Ts'o 1447ff9c073STheodore Ts'o TP_ARGS(inode, IP), 1457ff9c073STheodore Ts'o 1467ff9c073STheodore Ts'o TP_STRUCT__entry( 1470562e0baSJiaying Zhang __field( dev_t, dev ) 1487ff9c073STheodore Ts'o __field( ino_t, ino ) 1497ff9c073STheodore Ts'o __field(unsigned long, ip ) 1507ff9c073STheodore Ts'o ), 1517ff9c073STheodore Ts'o 1527ff9c073STheodore Ts'o TP_fast_assign( 1530562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1547ff9c073STheodore Ts'o __entry->ino = inode->i_ino; 1557ff9c073STheodore Ts'o __entry->ip = IP; 1567ff9c073STheodore Ts'o ), 1577ff9c073STheodore Ts'o 1587ff9c073STheodore Ts'o TP_printk("dev %d,%d ino %lu caller %pF", 1590562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1607ff9c073STheodore Ts'o (unsigned long) __entry->ino, (void *)__entry->ip) 1617ff9c073STheodore Ts'o ); 1627ff9c073STheodore Ts'o 1637ff9c073STheodore Ts'o TRACE_EVENT(ext4_begin_ordered_truncate, 1647ff9c073STheodore Ts'o TP_PROTO(struct inode *inode, loff_t new_size), 1657ff9c073STheodore Ts'o 1667ff9c073STheodore Ts'o TP_ARGS(inode, new_size), 1677ff9c073STheodore Ts'o 1687ff9c073STheodore Ts'o TP_STRUCT__entry( 1690562e0baSJiaying Zhang __field( dev_t, dev ) 1707ff9c073STheodore Ts'o __field( ino_t, ino ) 1717ff9c073STheodore Ts'o __field( loff_t, new_size ) 1727ff9c073STheodore Ts'o ), 1737ff9c073STheodore Ts'o 1747ff9c073STheodore Ts'o TP_fast_assign( 1750562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1767ff9c073STheodore Ts'o __entry->ino = inode->i_ino; 1777ff9c073STheodore Ts'o __entry->new_size = new_size; 1787ff9c073STheodore Ts'o ), 1797ff9c073STheodore Ts'o 1807ff9c073STheodore Ts'o TP_printk("dev %d,%d ino %lu new_size %lld", 1810562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1827ff9c073STheodore Ts'o (unsigned long) __entry->ino, 183a9c667f8SLukas Czerner __entry->new_size) 1847ff9c073STheodore Ts'o ); 1857ff9c073STheodore Ts'o 186b5eb34c3SLi Zefan DECLARE_EVENT_CLASS(ext4__write_begin, 1879bffad1eSTheodore Ts'o 1889bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 1899bffad1eSTheodore Ts'o unsigned int flags), 1909bffad1eSTheodore Ts'o 1919bffad1eSTheodore Ts'o TP_ARGS(inode, pos, len, flags), 1929bffad1eSTheodore Ts'o 1939bffad1eSTheodore Ts'o TP_STRUCT__entry( 1940562e0baSJiaying Zhang __field( dev_t, dev ) 1959bffad1eSTheodore Ts'o __field( ino_t, ino ) 1969bffad1eSTheodore Ts'o __field( loff_t, pos ) 1979bffad1eSTheodore Ts'o __field( unsigned int, len ) 1989bffad1eSTheodore Ts'o __field( unsigned int, flags ) 1999bffad1eSTheodore Ts'o ), 2009bffad1eSTheodore Ts'o 2019bffad1eSTheodore Ts'o TP_fast_assign( 2020562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 2039bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 2049bffad1eSTheodore Ts'o __entry->pos = pos; 2059bffad1eSTheodore Ts'o __entry->len = len; 2069bffad1eSTheodore Ts'o __entry->flags = flags; 2079bffad1eSTheodore Ts'o ), 2089bffad1eSTheodore Ts'o 209a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", 2100562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 211a269029dSTheodore Ts'o (unsigned long) __entry->ino, 212a3710fd1STheodore Ts'o __entry->pos, __entry->len, __entry->flags) 2139bffad1eSTheodore Ts'o ); 2149bffad1eSTheodore Ts'o 215b5eb34c3SLi Zefan DEFINE_EVENT(ext4__write_begin, ext4_write_begin, 216b5eb34c3SLi Zefan 217b5eb34c3SLi Zefan TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 218b5eb34c3SLi Zefan unsigned int flags), 219b5eb34c3SLi Zefan 220b5eb34c3SLi Zefan TP_ARGS(inode, pos, len, flags) 221b5eb34c3SLi Zefan ); 222b5eb34c3SLi Zefan 223b5eb34c3SLi Zefan DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, 224b5eb34c3SLi Zefan 225b5eb34c3SLi Zefan TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 226b5eb34c3SLi Zefan unsigned int flags), 227b5eb34c3SLi Zefan 228b5eb34c3SLi Zefan TP_ARGS(inode, pos, len, flags) 229b5eb34c3SLi Zefan ); 230b5eb34c3SLi Zefan 231b5eb34c3SLi Zefan DECLARE_EVENT_CLASS(ext4__write_end, 2329bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 2339bffad1eSTheodore Ts'o unsigned int copied), 2349bffad1eSTheodore Ts'o 2359bffad1eSTheodore Ts'o TP_ARGS(inode, pos, len, copied), 2369bffad1eSTheodore Ts'o 2379bffad1eSTheodore Ts'o TP_STRUCT__entry( 2380562e0baSJiaying Zhang __field( dev_t, dev ) 2399bffad1eSTheodore Ts'o __field( ino_t, ino ) 2409bffad1eSTheodore Ts'o __field( loff_t, pos ) 2419bffad1eSTheodore Ts'o __field( unsigned int, len ) 2429bffad1eSTheodore Ts'o __field( unsigned int, copied ) 2439bffad1eSTheodore Ts'o ), 2449bffad1eSTheodore Ts'o 2459bffad1eSTheodore Ts'o TP_fast_assign( 2460562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 2479bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 2489bffad1eSTheodore Ts'o __entry->pos = pos; 2499bffad1eSTheodore Ts'o __entry->len = len; 2509bffad1eSTheodore Ts'o __entry->copied = copied; 2519bffad1eSTheodore Ts'o ), 2529bffad1eSTheodore Ts'o 253a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", 2540562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 2550562e0baSJiaying Zhang (unsigned long) __entry->ino, 2560562e0baSJiaying Zhang __entry->pos, __entry->len, __entry->copied) 2579bffad1eSTheodore Ts'o ); 2589bffad1eSTheodore Ts'o 259b5eb34c3SLi Zefan DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, 260b5eb34c3SLi Zefan 2619bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 2629bffad1eSTheodore Ts'o unsigned int copied), 2639bffad1eSTheodore Ts'o 264b5eb34c3SLi Zefan TP_ARGS(inode, pos, len, copied) 2659bffad1eSTheodore Ts'o ); 2669bffad1eSTheodore Ts'o 267b5eb34c3SLi Zefan DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, 268b5eb34c3SLi Zefan 2699bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 2709bffad1eSTheodore Ts'o unsigned int copied), 2719bffad1eSTheodore Ts'o 272b5eb34c3SLi Zefan TP_ARGS(inode, pos, len, copied) 273b5eb34c3SLi Zefan ); 2749bffad1eSTheodore Ts'o 275b5eb34c3SLi Zefan DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, 2769bffad1eSTheodore Ts'o 277b5eb34c3SLi Zefan TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 278b5eb34c3SLi Zefan unsigned int copied), 279b5eb34c3SLi Zefan 280b5eb34c3SLi Zefan TP_ARGS(inode, pos, len, copied) 281b5eb34c3SLi Zefan ); 282b5eb34c3SLi Zefan 283b5eb34c3SLi Zefan DEFINE_EVENT(ext4__write_end, ext4_da_write_end, 284b5eb34c3SLi Zefan 285b5eb34c3SLi Zefan TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, 286b5eb34c3SLi Zefan unsigned int copied), 287b5eb34c3SLi Zefan 288b5eb34c3SLi Zefan TP_ARGS(inode, pos, len, copied) 2899bffad1eSTheodore Ts'o ); 2909bffad1eSTheodore Ts'o 2919bffad1eSTheodore Ts'o TRACE_EVENT(ext4_da_writepages, 2929bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, struct writeback_control *wbc), 2939bffad1eSTheodore Ts'o 2949bffad1eSTheodore Ts'o TP_ARGS(inode, wbc), 2959bffad1eSTheodore Ts'o 2969bffad1eSTheodore Ts'o TP_STRUCT__entry( 2970562e0baSJiaying Zhang __field( dev_t, dev ) 2989bffad1eSTheodore Ts'o __field( ino_t, ino ) 2999bffad1eSTheodore Ts'o __field( long, nr_to_write ) 3009bffad1eSTheodore Ts'o __field( long, pages_skipped ) 3019bffad1eSTheodore Ts'o __field( loff_t, range_start ) 3029bffad1eSTheodore Ts'o __field( loff_t, range_end ) 303210c0526SAnatol Pomozov __field( pgoff_t, writeback_index ) 3040562e0baSJiaying Zhang __field( int, sync_mode ) 3059bffad1eSTheodore Ts'o __field( char, for_kupdate ) 3069bffad1eSTheodore Ts'o __field( char, range_cyclic ) 3079bffad1eSTheodore Ts'o ), 3089bffad1eSTheodore Ts'o 3099bffad1eSTheodore Ts'o TP_fast_assign( 3100562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 3119bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 3129bffad1eSTheodore Ts'o __entry->nr_to_write = wbc->nr_to_write; 3139bffad1eSTheodore Ts'o __entry->pages_skipped = wbc->pages_skipped; 3149bffad1eSTheodore Ts'o __entry->range_start = wbc->range_start; 3159bffad1eSTheodore Ts'o __entry->range_end = wbc->range_end; 316210c0526SAnatol Pomozov __entry->writeback_index = inode->i_mapping->writeback_index; 3170562e0baSJiaying Zhang __entry->sync_mode = wbc->sync_mode; 3189bffad1eSTheodore Ts'o __entry->for_kupdate = wbc->for_kupdate; 3199bffad1eSTheodore Ts'o __entry->range_cyclic = wbc->range_cyclic; 3209bffad1eSTheodore Ts'o ), 3219bffad1eSTheodore Ts'o 322a107e5a3STheodore Ts'o TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " 323a9c667f8SLukas Czerner "range_start %lld range_end %lld sync_mode %d " 3240562e0baSJiaying Zhang "for_kupdate %d range_cyclic %d writeback_index %lu", 3250562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 326a3710fd1STheodore Ts'o (unsigned long) __entry->ino, __entry->nr_to_write, 3279bffad1eSTheodore Ts'o __entry->pages_skipped, __entry->range_start, 3280562e0baSJiaying Zhang __entry->range_end, __entry->sync_mode, 3290562e0baSJiaying Zhang __entry->for_kupdate, __entry->range_cyclic, 33055138e0bSTheodore Ts'o (unsigned long) __entry->writeback_index) 3319bffad1eSTheodore Ts'o ); 3329bffad1eSTheodore Ts'o 333b3a3ca8cSTheodore Ts'o TRACE_EVENT(ext4_da_write_pages, 334b3a3ca8cSTheodore Ts'o TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), 335b3a3ca8cSTheodore Ts'o 336b3a3ca8cSTheodore Ts'o TP_ARGS(inode, mpd), 337b3a3ca8cSTheodore Ts'o 338b3a3ca8cSTheodore Ts'o TP_STRUCT__entry( 3390562e0baSJiaying Zhang __field( dev_t, dev ) 340b3a3ca8cSTheodore Ts'o __field( ino_t, ino ) 341b3a3ca8cSTheodore Ts'o __field( __u64, b_blocknr ) 342b3a3ca8cSTheodore Ts'o __field( __u32, b_size ) 343b3a3ca8cSTheodore Ts'o __field( __u32, b_state ) 344b3a3ca8cSTheodore Ts'o __field( unsigned long, first_page ) 345b3a3ca8cSTheodore Ts'o __field( int, io_done ) 346b3a3ca8cSTheodore Ts'o __field( int, pages_written ) 3470562e0baSJiaying Zhang __field( int, sync_mode ) 348b3a3ca8cSTheodore Ts'o ), 349b3a3ca8cSTheodore Ts'o 350b3a3ca8cSTheodore Ts'o TP_fast_assign( 3510562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 352b3a3ca8cSTheodore Ts'o __entry->ino = inode->i_ino; 353b3a3ca8cSTheodore Ts'o __entry->b_blocknr = mpd->b_blocknr; 354b3a3ca8cSTheodore Ts'o __entry->b_size = mpd->b_size; 355b3a3ca8cSTheodore Ts'o __entry->b_state = mpd->b_state; 356b3a3ca8cSTheodore Ts'o __entry->first_page = mpd->first_page; 357b3a3ca8cSTheodore Ts'o __entry->io_done = mpd->io_done; 358b3a3ca8cSTheodore Ts'o __entry->pages_written = mpd->pages_written; 3590562e0baSJiaying Zhang __entry->sync_mode = mpd->wbc->sync_mode; 360b3a3ca8cSTheodore Ts'o ), 361b3a3ca8cSTheodore Ts'o 3620562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " 3630562e0baSJiaying Zhang "first_page %lu io_done %d pages_written %d sync_mode %d", 3640562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 365a269029dSTheodore Ts'o (unsigned long) __entry->ino, 366b3a3ca8cSTheodore Ts'o __entry->b_blocknr, __entry->b_size, 367b3a3ca8cSTheodore Ts'o __entry->b_state, __entry->first_page, 3680562e0baSJiaying Zhang __entry->io_done, __entry->pages_written, 3690562e0baSJiaying Zhang __entry->sync_mode 3700562e0baSJiaying Zhang ) 371b3a3ca8cSTheodore Ts'o ); 372b3a3ca8cSTheodore Ts'o 3739bffad1eSTheodore Ts'o TRACE_EVENT(ext4_da_writepages_result, 3749bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, struct writeback_control *wbc, 3759bffad1eSTheodore Ts'o int ret, int pages_written), 3769bffad1eSTheodore Ts'o 3779bffad1eSTheodore Ts'o TP_ARGS(inode, wbc, ret, pages_written), 3789bffad1eSTheodore Ts'o 3799bffad1eSTheodore Ts'o TP_STRUCT__entry( 3800562e0baSJiaying Zhang __field( dev_t, dev ) 3819bffad1eSTheodore Ts'o __field( ino_t, ino ) 3829bffad1eSTheodore Ts'o __field( int, ret ) 3839bffad1eSTheodore Ts'o __field( int, pages_written ) 3849bffad1eSTheodore Ts'o __field( long, pages_skipped ) 38555138e0bSTheodore Ts'o __field( pgoff_t, writeback_index ) 386210c0526SAnatol Pomozov __field( int, sync_mode ) 3879bffad1eSTheodore Ts'o ), 3889bffad1eSTheodore Ts'o 3899bffad1eSTheodore Ts'o TP_fast_assign( 3900562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 3919bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 3929bffad1eSTheodore Ts'o __entry->ret = ret; 3939bffad1eSTheodore Ts'o __entry->pages_written = pages_written; 3949bffad1eSTheodore Ts'o __entry->pages_skipped = wbc->pages_skipped; 39555138e0bSTheodore Ts'o __entry->writeback_index = inode->i_mapping->writeback_index; 396210c0526SAnatol Pomozov __entry->sync_mode = wbc->sync_mode; 3979bffad1eSTheodore Ts'o ), 3989bffad1eSTheodore Ts'o 3990562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " 400b7a2441fSWu Fengguang "sync_mode %d writeback_index %lu", 4010562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 402a3710fd1STheodore Ts'o (unsigned long) __entry->ino, __entry->ret, 4039bffad1eSTheodore Ts'o __entry->pages_written, __entry->pages_skipped, 404b7a2441fSWu Fengguang __entry->sync_mode, 40555138e0bSTheodore Ts'o (unsigned long) __entry->writeback_index) 4069bffad1eSTheodore Ts'o ); 4079bffad1eSTheodore Ts'o 4080562e0baSJiaying Zhang DECLARE_EVENT_CLASS(ext4__page_op, 4090562e0baSJiaying Zhang TP_PROTO(struct page *page), 4100562e0baSJiaying Zhang 4110562e0baSJiaying Zhang TP_ARGS(page), 4120562e0baSJiaying Zhang 4130562e0baSJiaying Zhang TP_STRUCT__entry( 4140562e0baSJiaying Zhang __field( dev_t, dev ) 415210c0526SAnatol Pomozov __field( ino_t, ino ) 416210c0526SAnatol Pomozov __field( pgoff_t, index ) 4170562e0baSJiaying Zhang 4180562e0baSJiaying Zhang ), 4190562e0baSJiaying Zhang 4200562e0baSJiaying Zhang TP_fast_assign( 4210562e0baSJiaying Zhang __entry->dev = page->mapping->host->i_sb->s_dev; 422210c0526SAnatol Pomozov __entry->ino = page->mapping->host->i_ino; 423210c0526SAnatol Pomozov __entry->index = page->index; 4240562e0baSJiaying Zhang ), 4250562e0baSJiaying Zhang 4260562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu page_index %lu", 4270562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 4280562e0baSJiaying Zhang (unsigned long) __entry->ino, 429a9c667f8SLukas Czerner (unsigned long) __entry->index) 430a9c667f8SLukas Czerner ); 431a9c667f8SLukas Czerner 432a9c667f8SLukas Czerner DEFINE_EVENT(ext4__page_op, ext4_writepage, 433a9c667f8SLukas Czerner 434a9c667f8SLukas Czerner TP_PROTO(struct page *page), 435a9c667f8SLukas Czerner 436a9c667f8SLukas Czerner TP_ARGS(page) 4370562e0baSJiaying Zhang ); 4380562e0baSJiaying Zhang 4390562e0baSJiaying Zhang DEFINE_EVENT(ext4__page_op, ext4_readpage, 4400562e0baSJiaying Zhang 4410562e0baSJiaying Zhang TP_PROTO(struct page *page), 4420562e0baSJiaying Zhang 4430562e0baSJiaying Zhang TP_ARGS(page) 4440562e0baSJiaying Zhang ); 4450562e0baSJiaying Zhang 4460562e0baSJiaying Zhang DEFINE_EVENT(ext4__page_op, ext4_releasepage, 4470562e0baSJiaying Zhang 4480562e0baSJiaying Zhang TP_PROTO(struct page *page), 4490562e0baSJiaying Zhang 4500562e0baSJiaying Zhang TP_ARGS(page) 4510562e0baSJiaying Zhang ); 4520562e0baSJiaying Zhang 4530562e0baSJiaying Zhang TRACE_EVENT(ext4_invalidatepage, 4540562e0baSJiaying Zhang TP_PROTO(struct page *page, unsigned long offset), 4550562e0baSJiaying Zhang 4560562e0baSJiaying Zhang TP_ARGS(page, offset), 4570562e0baSJiaying Zhang 4580562e0baSJiaying Zhang TP_STRUCT__entry( 459210c0526SAnatol Pomozov __field( dev_t, dev ) 460210c0526SAnatol Pomozov __field( ino_t, ino ) 4610562e0baSJiaying Zhang __field( pgoff_t, index ) 4620562e0baSJiaying Zhang __field( unsigned long, offset ) 4630562e0baSJiaying Zhang 4640562e0baSJiaying Zhang ), 4650562e0baSJiaying Zhang 4660562e0baSJiaying Zhang TP_fast_assign( 467210c0526SAnatol Pomozov __entry->dev = page->mapping->host->i_sb->s_dev; 468210c0526SAnatol Pomozov __entry->ino = page->mapping->host->i_ino; 4690562e0baSJiaying Zhang __entry->index = page->index; 4700562e0baSJiaying Zhang __entry->offset = offset; 4710562e0baSJiaying Zhang ), 4720562e0baSJiaying Zhang 4730562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", 4740562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 4750562e0baSJiaying Zhang (unsigned long) __entry->ino, 476a9c667f8SLukas Czerner (unsigned long) __entry->index, __entry->offset) 4770562e0baSJiaying Zhang ); 4780562e0baSJiaying Zhang 4799bffad1eSTheodore Ts'o TRACE_EVENT(ext4_discard_blocks, 4809bffad1eSTheodore Ts'o TP_PROTO(struct super_block *sb, unsigned long long blk, 4819bffad1eSTheodore Ts'o unsigned long long count), 4829bffad1eSTheodore Ts'o 4839bffad1eSTheodore Ts'o TP_ARGS(sb, blk, count), 4849bffad1eSTheodore Ts'o 4859bffad1eSTheodore Ts'o TP_STRUCT__entry( 4860562e0baSJiaying Zhang __field( dev_t, dev ) 4879bffad1eSTheodore Ts'o __field( __u64, blk ) 4889bffad1eSTheodore Ts'o __field( __u64, count ) 4899bffad1eSTheodore Ts'o 4909bffad1eSTheodore Ts'o ), 4919bffad1eSTheodore Ts'o 4929bffad1eSTheodore Ts'o TP_fast_assign( 4930562e0baSJiaying Zhang __entry->dev = sb->s_dev; 4949bffad1eSTheodore Ts'o __entry->blk = blk; 4959bffad1eSTheodore Ts'o __entry->count = count; 4969bffad1eSTheodore Ts'o ), 4979bffad1eSTheodore Ts'o 498a269029dSTheodore Ts'o TP_printk("dev %d,%d blk %llu count %llu", 4990562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 500a269029dSTheodore Ts'o __entry->blk, __entry->count) 5019bffad1eSTheodore Ts'o ); 5029bffad1eSTheodore Ts'o 503f084db93SLi Zefan DECLARE_EVENT_CLASS(ext4__mb_new_pa, 5049bffad1eSTheodore Ts'o TP_PROTO(struct ext4_allocation_context *ac, 5059bffad1eSTheodore Ts'o struct ext4_prealloc_space *pa), 5069bffad1eSTheodore Ts'o 5079bffad1eSTheodore Ts'o TP_ARGS(ac, pa), 5089bffad1eSTheodore Ts'o 5099bffad1eSTheodore Ts'o TP_STRUCT__entry( 5100562e0baSJiaying Zhang __field( dev_t, dev ) 5119bffad1eSTheodore Ts'o __field( ino_t, ino ) 5129bffad1eSTheodore Ts'o __field( __u64, pa_pstart ) 5139bffad1eSTheodore Ts'o __field( __u64, pa_lstart ) 514210c0526SAnatol Pomozov __field( __u32, pa_len ) 5159bffad1eSTheodore Ts'o 5169bffad1eSTheodore Ts'o ), 5179bffad1eSTheodore Ts'o 5189bffad1eSTheodore Ts'o TP_fast_assign( 5190562e0baSJiaying Zhang __entry->dev = ac->ac_sb->s_dev; 5209bffad1eSTheodore Ts'o __entry->ino = ac->ac_inode->i_ino; 5219bffad1eSTheodore Ts'o __entry->pa_pstart = pa->pa_pstart; 5229bffad1eSTheodore Ts'o __entry->pa_lstart = pa->pa_lstart; 523210c0526SAnatol Pomozov __entry->pa_len = pa->pa_len; 5249bffad1eSTheodore Ts'o ), 5259bffad1eSTheodore Ts'o 526a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu", 5270562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 5280562e0baSJiaying Zhang (unsigned long) __entry->ino, 5290562e0baSJiaying Zhang __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) 5309bffad1eSTheodore Ts'o ); 5319bffad1eSTheodore Ts'o 532f084db93SLi Zefan DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, 533f084db93SLi Zefan 5349bffad1eSTheodore Ts'o TP_PROTO(struct ext4_allocation_context *ac, 5359bffad1eSTheodore Ts'o struct ext4_prealloc_space *pa), 5369bffad1eSTheodore Ts'o 537f084db93SLi Zefan TP_ARGS(ac, pa) 538f084db93SLi Zefan ); 5399bffad1eSTheodore Ts'o 540f084db93SLi Zefan DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, 5419bffad1eSTheodore Ts'o 542f084db93SLi Zefan TP_PROTO(struct ext4_allocation_context *ac, 543f084db93SLi Zefan struct ext4_prealloc_space *pa), 5449bffad1eSTheodore Ts'o 545f084db93SLi Zefan TP_ARGS(ac, pa) 5469bffad1eSTheodore Ts'o ); 5479bffad1eSTheodore Ts'o 5489bffad1eSTheodore Ts'o TRACE_EVENT(ext4_mb_release_inode_pa, 549a9c667f8SLukas Czerner TP_PROTO(struct ext4_prealloc_space *pa, 5509bffad1eSTheodore Ts'o unsigned long long block, unsigned int count), 5519bffad1eSTheodore Ts'o 552a9c667f8SLukas Czerner TP_ARGS(pa, block, count), 5539bffad1eSTheodore Ts'o 5549bffad1eSTheodore Ts'o TP_STRUCT__entry( 5550562e0baSJiaying Zhang __field( dev_t, dev ) 5569bffad1eSTheodore Ts'o __field( ino_t, ino ) 5579bffad1eSTheodore Ts'o __field( __u64, block ) 5589bffad1eSTheodore Ts'o __field( __u32, count ) 5599bffad1eSTheodore Ts'o 5609bffad1eSTheodore Ts'o ), 5619bffad1eSTheodore Ts'o 5629bffad1eSTheodore Ts'o TP_fast_assign( 563a9c667f8SLukas Czerner __entry->dev = pa->pa_inode->i_sb->s_dev; 564a9c667f8SLukas Czerner __entry->ino = pa->pa_inode->i_ino; 5659bffad1eSTheodore Ts'o __entry->block = block; 5669bffad1eSTheodore Ts'o __entry->count = count; 5679bffad1eSTheodore Ts'o ), 5689bffad1eSTheodore Ts'o 569a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu block %llu count %u", 5700562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 5710562e0baSJiaying Zhang (unsigned long) __entry->ino, 5720562e0baSJiaying Zhang __entry->block, __entry->count) 5739bffad1eSTheodore Ts'o ); 5749bffad1eSTheodore Ts'o 5759bffad1eSTheodore Ts'o TRACE_EVENT(ext4_mb_release_group_pa, 57660e07cf5SYongqiang Yang TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa), 5779bffad1eSTheodore Ts'o 57860e07cf5SYongqiang Yang TP_ARGS(sb, pa), 5799bffad1eSTheodore Ts'o 5809bffad1eSTheodore Ts'o TP_STRUCT__entry( 5810562e0baSJiaying Zhang __field( dev_t, dev ) 5829bffad1eSTheodore Ts'o __field( __u64, pa_pstart ) 5839bffad1eSTheodore Ts'o __field( __u32, pa_len ) 5849bffad1eSTheodore Ts'o 5859bffad1eSTheodore Ts'o ), 5869bffad1eSTheodore Ts'o 5879bffad1eSTheodore Ts'o TP_fast_assign( 58860e07cf5SYongqiang Yang __entry->dev = sb->s_dev; 5899bffad1eSTheodore Ts'o __entry->pa_pstart = pa->pa_pstart; 5909bffad1eSTheodore Ts'o __entry->pa_len = pa->pa_len; 5919bffad1eSTheodore Ts'o ), 5929bffad1eSTheodore Ts'o 593a269029dSTheodore Ts'o TP_printk("dev %d,%d pstart %llu len %u", 5940562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 595a269029dSTheodore Ts'o __entry->pa_pstart, __entry->pa_len) 5969bffad1eSTheodore Ts'o ); 5979bffad1eSTheodore Ts'o 5989bffad1eSTheodore Ts'o TRACE_EVENT(ext4_discard_preallocations, 5999bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode), 6009bffad1eSTheodore Ts'o 6019bffad1eSTheodore Ts'o TP_ARGS(inode), 6029bffad1eSTheodore Ts'o 6039bffad1eSTheodore Ts'o TP_STRUCT__entry( 6040562e0baSJiaying Zhang __field( dev_t, dev ) 6059bffad1eSTheodore Ts'o __field( ino_t, ino ) 6069bffad1eSTheodore Ts'o 6079bffad1eSTheodore Ts'o ), 6089bffad1eSTheodore Ts'o 6099bffad1eSTheodore Ts'o TP_fast_assign( 6100562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 6119bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 6129bffad1eSTheodore Ts'o ), 6139bffad1eSTheodore Ts'o 614a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu", 6150562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 616a269029dSTheodore Ts'o (unsigned long) __entry->ino) 6179bffad1eSTheodore Ts'o ); 6189bffad1eSTheodore Ts'o 6199bffad1eSTheodore Ts'o TRACE_EVENT(ext4_mb_discard_preallocations, 6209bffad1eSTheodore Ts'o TP_PROTO(struct super_block *sb, int needed), 6219bffad1eSTheodore Ts'o 6229bffad1eSTheodore Ts'o TP_ARGS(sb, needed), 6239bffad1eSTheodore Ts'o 6249bffad1eSTheodore Ts'o TP_STRUCT__entry( 6250562e0baSJiaying Zhang __field( dev_t, dev ) 6269bffad1eSTheodore Ts'o __field( int, needed ) 6279bffad1eSTheodore Ts'o 6289bffad1eSTheodore Ts'o ), 6299bffad1eSTheodore Ts'o 6309bffad1eSTheodore Ts'o TP_fast_assign( 6310562e0baSJiaying Zhang __entry->dev = sb->s_dev; 6329bffad1eSTheodore Ts'o __entry->needed = needed; 6339bffad1eSTheodore Ts'o ), 6349bffad1eSTheodore Ts'o 635a269029dSTheodore Ts'o TP_printk("dev %d,%d needed %d", 6360562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 6370562e0baSJiaying Zhang __entry->needed) 6389bffad1eSTheodore Ts'o ); 6399bffad1eSTheodore Ts'o 6409bffad1eSTheodore Ts'o TRACE_EVENT(ext4_request_blocks, 6419bffad1eSTheodore Ts'o TP_PROTO(struct ext4_allocation_request *ar), 6429bffad1eSTheodore Ts'o 6439bffad1eSTheodore Ts'o TP_ARGS(ar), 6449bffad1eSTheodore Ts'o 6459bffad1eSTheodore Ts'o TP_STRUCT__entry( 6460562e0baSJiaying Zhang __field( dev_t, dev ) 6479bffad1eSTheodore Ts'o __field( ino_t, ino ) 6489bffad1eSTheodore Ts'o __field( unsigned int, len ) 649a9c667f8SLukas Czerner __field( __u32, logical ) 650a9c667f8SLukas Czerner __field( __u32, lleft ) 651a9c667f8SLukas Czerner __field( __u32, lright ) 6529bffad1eSTheodore Ts'o __field( __u64, goal ) 6539bffad1eSTheodore Ts'o __field( __u64, pleft ) 6549bffad1eSTheodore Ts'o __field( __u64, pright ) 655210c0526SAnatol Pomozov __field( unsigned int, flags ) 6569bffad1eSTheodore Ts'o ), 6579bffad1eSTheodore Ts'o 6589bffad1eSTheodore Ts'o TP_fast_assign( 6590562e0baSJiaying Zhang __entry->dev = ar->inode->i_sb->s_dev; 6609bffad1eSTheodore Ts'o __entry->ino = ar->inode->i_ino; 6619bffad1eSTheodore Ts'o __entry->len = ar->len; 6629bffad1eSTheodore Ts'o __entry->logical = ar->logical; 6639bffad1eSTheodore Ts'o __entry->goal = ar->goal; 6649bffad1eSTheodore Ts'o __entry->lleft = ar->lleft; 6659bffad1eSTheodore Ts'o __entry->lright = ar->lright; 6669bffad1eSTheodore Ts'o __entry->pleft = ar->pleft; 6679bffad1eSTheodore Ts'o __entry->pright = ar->pright; 668210c0526SAnatol Pomozov __entry->flags = ar->flags; 6699bffad1eSTheodore Ts'o ), 6709bffad1eSTheodore Ts'o 671a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " 672a9c667f8SLukas Czerner "lleft %u lright %u pleft %llu pright %llu ", 6730562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 674a9c667f8SLukas Czerner (unsigned long) __entry->ino, __entry->flags, 675a9c667f8SLukas Czerner __entry->len, __entry->logical, __entry->goal, 676a9c667f8SLukas Czerner __entry->lleft, __entry->lright, __entry->pleft, 677a9c667f8SLukas Czerner __entry->pright) 6789bffad1eSTheodore Ts'o ); 6799bffad1eSTheodore Ts'o 6809bffad1eSTheodore Ts'o TRACE_EVENT(ext4_allocate_blocks, 6819bffad1eSTheodore Ts'o TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), 6829bffad1eSTheodore Ts'o 6839bffad1eSTheodore Ts'o TP_ARGS(ar, block), 6849bffad1eSTheodore Ts'o 6859bffad1eSTheodore Ts'o TP_STRUCT__entry( 6860562e0baSJiaying Zhang __field( dev_t, dev ) 6879bffad1eSTheodore Ts'o __field( ino_t, ino ) 6889bffad1eSTheodore Ts'o __field( __u64, block ) 6899bffad1eSTheodore Ts'o __field( unsigned int, len ) 690a9c667f8SLukas Czerner __field( __u32, logical ) 691a9c667f8SLukas Czerner __field( __u32, lleft ) 692a9c667f8SLukas Czerner __field( __u32, lright ) 6939bffad1eSTheodore Ts'o __field( __u64, goal ) 6949bffad1eSTheodore Ts'o __field( __u64, pleft ) 6959bffad1eSTheodore Ts'o __field( __u64, pright ) 696210c0526SAnatol Pomozov __field( unsigned int, flags ) 6979bffad1eSTheodore Ts'o ), 6989bffad1eSTheodore Ts'o 6999bffad1eSTheodore Ts'o TP_fast_assign( 7000562e0baSJiaying Zhang __entry->dev = ar->inode->i_sb->s_dev; 7019bffad1eSTheodore Ts'o __entry->ino = ar->inode->i_ino; 7029bffad1eSTheodore Ts'o __entry->block = block; 7039bffad1eSTheodore Ts'o __entry->len = ar->len; 7049bffad1eSTheodore Ts'o __entry->logical = ar->logical; 7059bffad1eSTheodore Ts'o __entry->goal = ar->goal; 7069bffad1eSTheodore Ts'o __entry->lleft = ar->lleft; 7079bffad1eSTheodore Ts'o __entry->lright = ar->lright; 7089bffad1eSTheodore Ts'o __entry->pleft = ar->pleft; 7099bffad1eSTheodore Ts'o __entry->pright = ar->pright; 710210c0526SAnatol Pomozov __entry->flags = ar->flags; 7119bffad1eSTheodore Ts'o ), 7129bffad1eSTheodore Ts'o 713a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " 714a9c667f8SLukas Czerner "goal %llu lleft %u lright %u pleft %llu pright %llu", 7150562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 716a9c667f8SLukas Czerner (unsigned long) __entry->ino, __entry->flags, 717a9c667f8SLukas Czerner __entry->len, __entry->block, __entry->logical, 718a9c667f8SLukas Czerner __entry->goal, __entry->lleft, __entry->lright, 719a9c667f8SLukas Czerner __entry->pleft, __entry->pright) 7209bffad1eSTheodore Ts'o ); 7219bffad1eSTheodore Ts'o 7229bffad1eSTheodore Ts'o TRACE_EVENT(ext4_free_blocks, 7239bffad1eSTheodore Ts'o TP_PROTO(struct inode *inode, __u64 block, unsigned long count, 724e6362609STheodore Ts'o int flags), 7259bffad1eSTheodore Ts'o 726e6362609STheodore Ts'o TP_ARGS(inode, block, count, flags), 7279bffad1eSTheodore Ts'o 7289bffad1eSTheodore Ts'o TP_STRUCT__entry( 7290562e0baSJiaying Zhang __field( dev_t, dev ) 7309bffad1eSTheodore Ts'o __field( ino_t, ino ) 7319bffad1eSTheodore Ts'o __field( __u64, block ) 7329bffad1eSTheodore Ts'o __field( unsigned long, count ) 733e6362609STheodore Ts'o __field( int, flags ) 734210c0526SAnatol Pomozov __field( __u16, mode ) 7359bffad1eSTheodore Ts'o ), 7369bffad1eSTheodore Ts'o 7379bffad1eSTheodore Ts'o TP_fast_assign( 7380562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 7399bffad1eSTheodore Ts'o __entry->ino = inode->i_ino; 7409bffad1eSTheodore Ts'o __entry->block = block; 7419bffad1eSTheodore Ts'o __entry->count = count; 742e6362609STheodore Ts'o __entry->flags = flags; 743210c0526SAnatol Pomozov __entry->mode = inode->i_mode; 7449bffad1eSTheodore Ts'o ), 7459bffad1eSTheodore Ts'o 746a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d", 7470562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 748a269029dSTheodore Ts'o (unsigned long) __entry->ino, 749e6362609STheodore Ts'o __entry->mode, __entry->block, __entry->count, 750e6362609STheodore Ts'o __entry->flags) 7519bffad1eSTheodore Ts'o ); 7529bffad1eSTheodore Ts'o 7530562e0baSJiaying Zhang TRACE_EVENT(ext4_sync_file_enter, 7547ea80859SChristoph Hellwig TP_PROTO(struct file *file, int datasync), 7559bffad1eSTheodore Ts'o 7567ea80859SChristoph Hellwig TP_ARGS(file, datasync), 7579bffad1eSTheodore Ts'o 7589bffad1eSTheodore Ts'o TP_STRUCT__entry( 7590562e0baSJiaying Zhang __field( dev_t, dev ) 7609bffad1eSTheodore Ts'o __field( ino_t, ino ) 7619bffad1eSTheodore Ts'o __field( ino_t, parent ) 7629bffad1eSTheodore Ts'o __field( int, datasync ) 7639bffad1eSTheodore Ts'o ), 7649bffad1eSTheodore Ts'o 7659bffad1eSTheodore Ts'o TP_fast_assign( 7667ea80859SChristoph Hellwig struct dentry *dentry = file->f_path.dentry; 7677ea80859SChristoph Hellwig 7680562e0baSJiaying Zhang __entry->dev = dentry->d_inode->i_sb->s_dev; 7699bffad1eSTheodore Ts'o __entry->ino = dentry->d_inode->i_ino; 7709bffad1eSTheodore Ts'o __entry->datasync = datasync; 7719bffad1eSTheodore Ts'o __entry->parent = dentry->d_parent->d_inode->i_ino; 7729bffad1eSTheodore Ts'o ), 7739bffad1eSTheodore Ts'o 774a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", 7750562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 776a269029dSTheodore Ts'o (unsigned long) __entry->ino, 777a3710fd1STheodore Ts'o (unsigned long) __entry->parent, __entry->datasync) 7789bffad1eSTheodore Ts'o ); 7799bffad1eSTheodore Ts'o 7800562e0baSJiaying Zhang TRACE_EVENT(ext4_sync_file_exit, 7810562e0baSJiaying Zhang TP_PROTO(struct inode *inode, int ret), 7820562e0baSJiaying Zhang 7830562e0baSJiaying Zhang TP_ARGS(inode, ret), 7840562e0baSJiaying Zhang 7850562e0baSJiaying Zhang TP_STRUCT__entry( 7860562e0baSJiaying Zhang __field( dev_t, dev ) 787210c0526SAnatol Pomozov __field( ino_t, ino ) 788210c0526SAnatol Pomozov __field( int, ret ) 7890562e0baSJiaying Zhang ), 7900562e0baSJiaying Zhang 7910562e0baSJiaying Zhang TP_fast_assign( 7920562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 793210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 794210c0526SAnatol Pomozov __entry->ret = ret; 7950562e0baSJiaying Zhang ), 7960562e0baSJiaying Zhang 797a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu ret %d", 7980562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 7990562e0baSJiaying Zhang (unsigned long) __entry->ino, 8000562e0baSJiaying Zhang __entry->ret) 8010562e0baSJiaying Zhang ); 8020562e0baSJiaying Zhang 8039bffad1eSTheodore Ts'o TRACE_EVENT(ext4_sync_fs, 8049bffad1eSTheodore Ts'o TP_PROTO(struct super_block *sb, int wait), 8059bffad1eSTheodore Ts'o 8069bffad1eSTheodore Ts'o TP_ARGS(sb, wait), 8079bffad1eSTheodore Ts'o 8089bffad1eSTheodore Ts'o TP_STRUCT__entry( 8090562e0baSJiaying Zhang __field( dev_t, dev ) 8109bffad1eSTheodore Ts'o __field( int, wait ) 8119bffad1eSTheodore Ts'o 8129bffad1eSTheodore Ts'o ), 8139bffad1eSTheodore Ts'o 8149bffad1eSTheodore Ts'o TP_fast_assign( 8150562e0baSJiaying Zhang __entry->dev = sb->s_dev; 8169bffad1eSTheodore Ts'o __entry->wait = wait; 8179bffad1eSTheodore Ts'o ), 8189bffad1eSTheodore Ts'o 8190562e0baSJiaying Zhang TP_printk("dev %d,%d wait %d", 8200562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 8210562e0baSJiaying Zhang __entry->wait) 8229bffad1eSTheodore Ts'o ); 8239bffad1eSTheodore Ts'o 824fb40ba0dSTheodore Ts'o TRACE_EVENT(ext4_alloc_da_blocks, 825fb40ba0dSTheodore Ts'o TP_PROTO(struct inode *inode), 826fb40ba0dSTheodore Ts'o 827fb40ba0dSTheodore Ts'o TP_ARGS(inode), 828fb40ba0dSTheodore Ts'o 829fb40ba0dSTheodore Ts'o TP_STRUCT__entry( 8300562e0baSJiaying Zhang __field( dev_t, dev ) 831fb40ba0dSTheodore Ts'o __field( ino_t, ino ) 832fb40ba0dSTheodore Ts'o __field( unsigned int, data_blocks ) 833fb40ba0dSTheodore Ts'o __field( unsigned int, meta_blocks ) 834fb40ba0dSTheodore Ts'o ), 835fb40ba0dSTheodore Ts'o 836fb40ba0dSTheodore Ts'o TP_fast_assign( 8370562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 838fb40ba0dSTheodore Ts'o __entry->ino = inode->i_ino; 839fb40ba0dSTheodore Ts'o __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 840fb40ba0dSTheodore Ts'o __entry->meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; 841fb40ba0dSTheodore Ts'o ), 842fb40ba0dSTheodore Ts'o 843a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", 8440562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 845a269029dSTheodore Ts'o (unsigned long) __entry->ino, 846fb40ba0dSTheodore Ts'o __entry->data_blocks, __entry->meta_blocks) 847fb40ba0dSTheodore Ts'o ); 848fb40ba0dSTheodore Ts'o 849296c355cSTheodore Ts'o TRACE_EVENT(ext4_mballoc_alloc, 850296c355cSTheodore Ts'o TP_PROTO(struct ext4_allocation_context *ac), 851296c355cSTheodore Ts'o 852296c355cSTheodore Ts'o TP_ARGS(ac), 853296c355cSTheodore Ts'o 854296c355cSTheodore Ts'o TP_STRUCT__entry( 8550562e0baSJiaying Zhang __field( dev_t, dev ) 856296c355cSTheodore Ts'o __field( ino_t, ino ) 857296c355cSTheodore Ts'o __field( __u32, orig_logical ) 858296c355cSTheodore Ts'o __field( int, orig_start ) 859296c355cSTheodore Ts'o __field( __u32, orig_group ) 860296c355cSTheodore Ts'o __field( int, orig_len ) 861296c355cSTheodore Ts'o __field( __u32, goal_logical ) 862296c355cSTheodore Ts'o __field( int, goal_start ) 863296c355cSTheodore Ts'o __field( __u32, goal_group ) 864296c355cSTheodore Ts'o __field( int, goal_len ) 865296c355cSTheodore Ts'o __field( __u32, result_logical ) 866296c355cSTheodore Ts'o __field( int, result_start ) 867296c355cSTheodore Ts'o __field( __u32, result_group ) 868296c355cSTheodore Ts'o __field( int, result_len ) 869210c0526SAnatol Pomozov __field( __u16, found ) 870210c0526SAnatol Pomozov __field( __u16, groups ) 871210c0526SAnatol Pomozov __field( __u16, buddy ) 872210c0526SAnatol Pomozov __field( __u16, flags ) 873210c0526SAnatol Pomozov __field( __u16, tail ) 874210c0526SAnatol Pomozov __field( __u8, cr ) 875296c355cSTheodore Ts'o ), 876296c355cSTheodore Ts'o 877296c355cSTheodore Ts'o TP_fast_assign( 8780562e0baSJiaying Zhang __entry->dev = ac->ac_inode->i_sb->s_dev; 879296c355cSTheodore Ts'o __entry->ino = ac->ac_inode->i_ino; 880296c355cSTheodore Ts'o __entry->orig_logical = ac->ac_o_ex.fe_logical; 881296c355cSTheodore Ts'o __entry->orig_start = ac->ac_o_ex.fe_start; 882296c355cSTheodore Ts'o __entry->orig_group = ac->ac_o_ex.fe_group; 883296c355cSTheodore Ts'o __entry->orig_len = ac->ac_o_ex.fe_len; 884296c355cSTheodore Ts'o __entry->goal_logical = ac->ac_g_ex.fe_logical; 885296c355cSTheodore Ts'o __entry->goal_start = ac->ac_g_ex.fe_start; 886296c355cSTheodore Ts'o __entry->goal_group = ac->ac_g_ex.fe_group; 887296c355cSTheodore Ts'o __entry->goal_len = ac->ac_g_ex.fe_len; 888296c355cSTheodore Ts'o __entry->result_logical = ac->ac_f_ex.fe_logical; 889296c355cSTheodore Ts'o __entry->result_start = ac->ac_f_ex.fe_start; 890296c355cSTheodore Ts'o __entry->result_group = ac->ac_f_ex.fe_group; 891296c355cSTheodore Ts'o __entry->result_len = ac->ac_f_ex.fe_len; 892210c0526SAnatol Pomozov __entry->found = ac->ac_found; 893210c0526SAnatol Pomozov __entry->flags = ac->ac_flags; 894210c0526SAnatol Pomozov __entry->groups = ac->ac_groups_scanned; 895210c0526SAnatol Pomozov __entry->buddy = ac->ac_buddy; 896210c0526SAnatol Pomozov __entry->tail = ac->ac_tail; 897210c0526SAnatol Pomozov __entry->cr = ac->ac_criteria; 898296c355cSTheodore Ts'o ), 899296c355cSTheodore Ts'o 900a269029dSTheodore Ts'o TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " 901296c355cSTheodore Ts'o "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " 902296c355cSTheodore Ts'o "tail %u broken %u", 9030562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 904a269029dSTheodore Ts'o (unsigned long) __entry->ino, 905296c355cSTheodore Ts'o __entry->orig_group, __entry->orig_start, 906296c355cSTheodore Ts'o __entry->orig_len, __entry->orig_logical, 907296c355cSTheodore Ts'o __entry->goal_group, __entry->goal_start, 908296c355cSTheodore Ts'o __entry->goal_len, __entry->goal_logical, 909296c355cSTheodore Ts'o __entry->result_group, __entry->result_start, 910296c355cSTheodore Ts'o __entry->result_len, __entry->result_logical, 911296c355cSTheodore Ts'o __entry->found, __entry->groups, __entry->cr, 912296c355cSTheodore Ts'o __entry->flags, __entry->tail, 913296c355cSTheodore Ts'o __entry->buddy ? 1 << __entry->buddy : 0) 914296c355cSTheodore Ts'o ); 915296c355cSTheodore Ts'o 916296c355cSTheodore Ts'o TRACE_EVENT(ext4_mballoc_prealloc, 917296c355cSTheodore Ts'o TP_PROTO(struct ext4_allocation_context *ac), 918296c355cSTheodore Ts'o 919296c355cSTheodore Ts'o TP_ARGS(ac), 920296c355cSTheodore Ts'o 921296c355cSTheodore Ts'o TP_STRUCT__entry( 9220562e0baSJiaying Zhang __field( dev_t, dev ) 923296c355cSTheodore Ts'o __field( ino_t, ino ) 924296c355cSTheodore Ts'o __field( __u32, orig_logical ) 925296c355cSTheodore Ts'o __field( int, orig_start ) 926296c355cSTheodore Ts'o __field( __u32, orig_group ) 927296c355cSTheodore Ts'o __field( int, orig_len ) 928296c355cSTheodore Ts'o __field( __u32, result_logical ) 929296c355cSTheodore Ts'o __field( int, result_start ) 930296c355cSTheodore Ts'o __field( __u32, result_group ) 931296c355cSTheodore Ts'o __field( int, result_len ) 932296c355cSTheodore Ts'o ), 933296c355cSTheodore Ts'o 934296c355cSTheodore Ts'o TP_fast_assign( 9350562e0baSJiaying Zhang __entry->dev = ac->ac_inode->i_sb->s_dev; 936296c355cSTheodore Ts'o __entry->ino = ac->ac_inode->i_ino; 937296c355cSTheodore Ts'o __entry->orig_logical = ac->ac_o_ex.fe_logical; 938296c355cSTheodore Ts'o __entry->orig_start = ac->ac_o_ex.fe_start; 939296c355cSTheodore Ts'o __entry->orig_group = ac->ac_o_ex.fe_group; 940296c355cSTheodore Ts'o __entry->orig_len = ac->ac_o_ex.fe_len; 941296c355cSTheodore Ts'o __entry->result_logical = ac->ac_b_ex.fe_logical; 942296c355cSTheodore Ts'o __entry->result_start = ac->ac_b_ex.fe_start; 943296c355cSTheodore Ts'o __entry->result_group = ac->ac_b_ex.fe_group; 944296c355cSTheodore Ts'o __entry->result_len = ac->ac_b_ex.fe_len; 945296c355cSTheodore Ts'o ), 946296c355cSTheodore Ts'o 947a269029dSTheodore Ts'o TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", 9480562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 949a269029dSTheodore Ts'o (unsigned long) __entry->ino, 950296c355cSTheodore Ts'o __entry->orig_group, __entry->orig_start, 951296c355cSTheodore Ts'o __entry->orig_len, __entry->orig_logical, 952296c355cSTheodore Ts'o __entry->result_group, __entry->result_start, 953296c355cSTheodore Ts'o __entry->result_len, __entry->result_logical) 954296c355cSTheodore Ts'o ); 955296c355cSTheodore Ts'o 956f084db93SLi Zefan DECLARE_EVENT_CLASS(ext4__mballoc, 9573e1e5f50SEric Sandeen TP_PROTO(struct super_block *sb, 9583e1e5f50SEric Sandeen struct inode *inode, 9593e1e5f50SEric Sandeen ext4_group_t group, 9603e1e5f50SEric Sandeen ext4_grpblk_t start, 9613e1e5f50SEric Sandeen ext4_grpblk_t len), 962296c355cSTheodore Ts'o 9633e1e5f50SEric Sandeen TP_ARGS(sb, inode, group, start, len), 964296c355cSTheodore Ts'o 965296c355cSTheodore Ts'o TP_STRUCT__entry( 9660562e0baSJiaying Zhang __field( dev_t, dev ) 967296c355cSTheodore Ts'o __field( ino_t, ino ) 968296c355cSTheodore Ts'o __field( int, result_start ) 969296c355cSTheodore Ts'o __field( __u32, result_group ) 970296c355cSTheodore Ts'o __field( int, result_len ) 971296c355cSTheodore Ts'o ), 972296c355cSTheodore Ts'o 973296c355cSTheodore Ts'o TP_fast_assign( 9740562e0baSJiaying Zhang __entry->dev = sb->s_dev; 9753e1e5f50SEric Sandeen __entry->ino = inode ? inode->i_ino : 0; 9763e1e5f50SEric Sandeen __entry->result_start = start; 9773e1e5f50SEric Sandeen __entry->result_group = group; 9783e1e5f50SEric Sandeen __entry->result_len = len; 979296c355cSTheodore Ts'o ), 980296c355cSTheodore Ts'o 981a9c667f8SLukas Czerner TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", 9820562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 983a269029dSTheodore Ts'o (unsigned long) __entry->ino, 984296c355cSTheodore Ts'o __entry->result_group, __entry->result_start, 9853e1e5f50SEric Sandeen __entry->result_len) 986296c355cSTheodore Ts'o ); 987296c355cSTheodore Ts'o 988f084db93SLi Zefan DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, 989f084db93SLi Zefan 9903e1e5f50SEric Sandeen TP_PROTO(struct super_block *sb, 9913e1e5f50SEric Sandeen struct inode *inode, 9923e1e5f50SEric Sandeen ext4_group_t group, 9933e1e5f50SEric Sandeen ext4_grpblk_t start, 9943e1e5f50SEric Sandeen ext4_grpblk_t len), 995296c355cSTheodore Ts'o 9963e1e5f50SEric Sandeen TP_ARGS(sb, inode, group, start, len) 997f084db93SLi Zefan ); 998296c355cSTheodore Ts'o 999f084db93SLi Zefan DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, 1000296c355cSTheodore Ts'o 10013e1e5f50SEric Sandeen TP_PROTO(struct super_block *sb, 10023e1e5f50SEric Sandeen struct inode *inode, 10033e1e5f50SEric Sandeen ext4_group_t group, 10043e1e5f50SEric Sandeen ext4_grpblk_t start, 10053e1e5f50SEric Sandeen ext4_grpblk_t len), 1006296c355cSTheodore Ts'o 10073e1e5f50SEric Sandeen TP_ARGS(sb, inode, group, start, len) 1008296c355cSTheodore Ts'o ); 1009296c355cSTheodore Ts'o 1010beac2da7STheodore Ts'o TRACE_EVENT(ext4_forget, 1011beac2da7STheodore Ts'o TP_PROTO(struct inode *inode, int is_metadata, __u64 block), 1012beac2da7STheodore Ts'o 1013beac2da7STheodore Ts'o TP_ARGS(inode, is_metadata, block), 1014beac2da7STheodore Ts'o 1015beac2da7STheodore Ts'o TP_STRUCT__entry( 10160562e0baSJiaying Zhang __field( dev_t, dev ) 1017beac2da7STheodore Ts'o __field( ino_t, ino ) 1018beac2da7STheodore Ts'o __field( __u64, block ) 1019210c0526SAnatol Pomozov __field( int, is_metadata ) 1020210c0526SAnatol Pomozov __field( __u16, mode ) 1021beac2da7STheodore Ts'o ), 1022beac2da7STheodore Ts'o 1023beac2da7STheodore Ts'o TP_fast_assign( 10240562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1025beac2da7STheodore Ts'o __entry->ino = inode->i_ino; 1026beac2da7STheodore Ts'o __entry->block = block; 1027210c0526SAnatol Pomozov __entry->is_metadata = is_metadata; 1028210c0526SAnatol Pomozov __entry->mode = inode->i_mode; 1029beac2da7STheodore Ts'o ), 1030beac2da7STheodore Ts'o 1031a269029dSTheodore Ts'o TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu", 10320562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 10330562e0baSJiaying Zhang (unsigned long) __entry->ino, 10340562e0baSJiaying Zhang __entry->mode, __entry->is_metadata, __entry->block) 1035beac2da7STheodore Ts'o ); 1036beac2da7STheodore Ts'o 1037f8ec9d68STheodore Ts'o TRACE_EVENT(ext4_da_update_reserve_space, 1038d8990240SAditya Kali TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), 1039f8ec9d68STheodore Ts'o 1040d8990240SAditya Kali TP_ARGS(inode, used_blocks, quota_claim), 1041f8ec9d68STheodore Ts'o 1042f8ec9d68STheodore Ts'o TP_STRUCT__entry( 10430562e0baSJiaying Zhang __field( dev_t, dev ) 1044f8ec9d68STheodore Ts'o __field( ino_t, ino ) 1045f8ec9d68STheodore Ts'o __field( __u64, i_blocks ) 1046f8ec9d68STheodore Ts'o __field( int, used_blocks ) 1047f8ec9d68STheodore Ts'o __field( int, reserved_data_blocks ) 1048f8ec9d68STheodore Ts'o __field( int, reserved_meta_blocks ) 1049f8ec9d68STheodore Ts'o __field( int, allocated_meta_blocks ) 1050d8990240SAditya Kali __field( int, quota_claim ) 1051210c0526SAnatol Pomozov __field( __u16, mode ) 1052f8ec9d68STheodore Ts'o ), 1053f8ec9d68STheodore Ts'o 1054f8ec9d68STheodore Ts'o TP_fast_assign( 10550562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1056f8ec9d68STheodore Ts'o __entry->ino = inode->i_ino; 1057f8ec9d68STheodore Ts'o __entry->i_blocks = inode->i_blocks; 1058f8ec9d68STheodore Ts'o __entry->used_blocks = used_blocks; 1059d8990240SAditya Kali __entry->reserved_data_blocks = 1060d8990240SAditya Kali EXT4_I(inode)->i_reserved_data_blocks; 1061d8990240SAditya Kali __entry->reserved_meta_blocks = 1062d8990240SAditya Kali EXT4_I(inode)->i_reserved_meta_blocks; 1063d8990240SAditya Kali __entry->allocated_meta_blocks = 1064d8990240SAditya Kali EXT4_I(inode)->i_allocated_meta_blocks; 1065d8990240SAditya Kali __entry->quota_claim = quota_claim; 1066210c0526SAnatol Pomozov __entry->mode = inode->i_mode; 1067f8ec9d68STheodore Ts'o ), 1068f8ec9d68STheodore Ts'o 10690562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " 10700562e0baSJiaying Zhang "reserved_data_blocks %d reserved_meta_blocks %d " 1071d8990240SAditya Kali "allocated_meta_blocks %d quota_claim %d", 10720562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 10730562e0baSJiaying Zhang (unsigned long) __entry->ino, 1074a9c667f8SLukas Czerner __entry->mode, __entry->i_blocks, 1075f8ec9d68STheodore Ts'o __entry->used_blocks, __entry->reserved_data_blocks, 1076d8990240SAditya Kali __entry->reserved_meta_blocks, __entry->allocated_meta_blocks, 1077d8990240SAditya Kali __entry->quota_claim) 1078f8ec9d68STheodore Ts'o ); 1079f8ec9d68STheodore Ts'o 1080f8ec9d68STheodore Ts'o TRACE_EVENT(ext4_da_reserve_space, 1081f8ec9d68STheodore Ts'o TP_PROTO(struct inode *inode, int md_needed), 1082f8ec9d68STheodore Ts'o 1083f8ec9d68STheodore Ts'o TP_ARGS(inode, md_needed), 1084f8ec9d68STheodore Ts'o 1085f8ec9d68STheodore Ts'o TP_STRUCT__entry( 10860562e0baSJiaying Zhang __field( dev_t, dev ) 1087f8ec9d68STheodore Ts'o __field( ino_t, ino ) 1088f8ec9d68STheodore Ts'o __field( __u64, i_blocks ) 1089f8ec9d68STheodore Ts'o __field( int, md_needed ) 1090f8ec9d68STheodore Ts'o __field( int, reserved_data_blocks ) 1091f8ec9d68STheodore Ts'o __field( int, reserved_meta_blocks ) 1092210c0526SAnatol Pomozov __field( __u16, mode ) 1093f8ec9d68STheodore Ts'o ), 1094f8ec9d68STheodore Ts'o 1095f8ec9d68STheodore Ts'o TP_fast_assign( 10960562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1097f8ec9d68STheodore Ts'o __entry->ino = inode->i_ino; 1098f8ec9d68STheodore Ts'o __entry->i_blocks = inode->i_blocks; 1099f8ec9d68STheodore Ts'o __entry->md_needed = md_needed; 1100f8ec9d68STheodore Ts'o __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 1101f8ec9d68STheodore Ts'o __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; 1102210c0526SAnatol Pomozov __entry->mode = inode->i_mode; 1103f8ec9d68STheodore Ts'o ), 1104f8ec9d68STheodore Ts'o 11050562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d " 11060562e0baSJiaying Zhang "reserved_data_blocks %d reserved_meta_blocks %d", 11070562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1108a269029dSTheodore Ts'o (unsigned long) __entry->ino, 1109a9c667f8SLukas Czerner __entry->mode, __entry->i_blocks, 1110f8ec9d68STheodore Ts'o __entry->md_needed, __entry->reserved_data_blocks, 1111f8ec9d68STheodore Ts'o __entry->reserved_meta_blocks) 1112f8ec9d68STheodore Ts'o ); 1113f8ec9d68STheodore Ts'o 1114f8ec9d68STheodore Ts'o TRACE_EVENT(ext4_da_release_space, 1115f8ec9d68STheodore Ts'o TP_PROTO(struct inode *inode, int freed_blocks), 1116f8ec9d68STheodore Ts'o 1117f8ec9d68STheodore Ts'o TP_ARGS(inode, freed_blocks), 1118f8ec9d68STheodore Ts'o 1119f8ec9d68STheodore Ts'o TP_STRUCT__entry( 11200562e0baSJiaying Zhang __field( dev_t, dev ) 1121f8ec9d68STheodore Ts'o __field( ino_t, ino ) 1122f8ec9d68STheodore Ts'o __field( __u64, i_blocks ) 1123f8ec9d68STheodore Ts'o __field( int, freed_blocks ) 1124f8ec9d68STheodore Ts'o __field( int, reserved_data_blocks ) 1125f8ec9d68STheodore Ts'o __field( int, reserved_meta_blocks ) 1126f8ec9d68STheodore Ts'o __field( int, allocated_meta_blocks ) 1127210c0526SAnatol Pomozov __field( __u16, mode ) 1128f8ec9d68STheodore Ts'o ), 1129f8ec9d68STheodore Ts'o 1130f8ec9d68STheodore Ts'o TP_fast_assign( 11310562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1132f8ec9d68STheodore Ts'o __entry->ino = inode->i_ino; 1133f8ec9d68STheodore Ts'o __entry->i_blocks = inode->i_blocks; 1134f8ec9d68STheodore Ts'o __entry->freed_blocks = freed_blocks; 1135f8ec9d68STheodore Ts'o __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 1136f8ec9d68STheodore Ts'o __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; 1137f8ec9d68STheodore Ts'o __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks; 1138210c0526SAnatol Pomozov __entry->mode = inode->i_mode; 1139f8ec9d68STheodore Ts'o ), 1140f8ec9d68STheodore Ts'o 11410562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " 11420562e0baSJiaying Zhang "reserved_data_blocks %d reserved_meta_blocks %d " 11430562e0baSJiaying Zhang "allocated_meta_blocks %d", 11440562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1145a269029dSTheodore Ts'o (unsigned long) __entry->ino, 1146a9c667f8SLukas Czerner __entry->mode, __entry->i_blocks, 1147f8ec9d68STheodore Ts'o __entry->freed_blocks, __entry->reserved_data_blocks, 1148f8ec9d68STheodore Ts'o __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) 1149f8ec9d68STheodore Ts'o ); 1150f8ec9d68STheodore Ts'o 1151f307333eSTheodore Ts'o DECLARE_EVENT_CLASS(ext4__bitmap_load, 1152f307333eSTheodore Ts'o TP_PROTO(struct super_block *sb, unsigned long group), 1153f307333eSTheodore Ts'o 1154f307333eSTheodore Ts'o TP_ARGS(sb, group), 1155f307333eSTheodore Ts'o 1156f307333eSTheodore Ts'o TP_STRUCT__entry( 11570562e0baSJiaying Zhang __field( dev_t, dev ) 1158f307333eSTheodore Ts'o __field( __u32, group ) 1159f307333eSTheodore Ts'o 1160f307333eSTheodore Ts'o ), 1161f307333eSTheodore Ts'o 1162f307333eSTheodore Ts'o TP_fast_assign( 11630562e0baSJiaying Zhang __entry->dev = sb->s_dev; 1164f307333eSTheodore Ts'o __entry->group = group; 1165f307333eSTheodore Ts'o ), 1166f307333eSTheodore Ts'o 1167a269029dSTheodore Ts'o TP_printk("dev %d,%d group %u", 11680562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 11690562e0baSJiaying Zhang __entry->group) 1170f307333eSTheodore Ts'o ); 1171f307333eSTheodore Ts'o 1172f307333eSTheodore Ts'o DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, 1173f307333eSTheodore Ts'o 1174f307333eSTheodore Ts'o TP_PROTO(struct super_block *sb, unsigned long group), 1175f307333eSTheodore Ts'o 1176f307333eSTheodore Ts'o TP_ARGS(sb, group) 1177f307333eSTheodore Ts'o ); 1178f307333eSTheodore Ts'o 1179f307333eSTheodore Ts'o DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, 1180f307333eSTheodore Ts'o 1181f307333eSTheodore Ts'o TP_PROTO(struct super_block *sb, unsigned long group), 1182f307333eSTheodore Ts'o 1183f307333eSTheodore Ts'o TP_ARGS(sb, group) 1184f307333eSTheodore Ts'o ); 1185f8ec9d68STheodore Ts'o 11860562e0baSJiaying Zhang DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, 11870562e0baSJiaying Zhang 11880562e0baSJiaying Zhang TP_PROTO(struct super_block *sb, unsigned long group), 11890562e0baSJiaying Zhang 11900562e0baSJiaying Zhang TP_ARGS(sb, group) 11910562e0baSJiaying Zhang ); 11920562e0baSJiaying Zhang 11930562e0baSJiaying Zhang DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, 11940562e0baSJiaying Zhang 11950562e0baSJiaying Zhang TP_PROTO(struct super_block *sb, unsigned long group), 11960562e0baSJiaying Zhang 11970562e0baSJiaying Zhang TP_ARGS(sb, group) 11980562e0baSJiaying Zhang ); 11990562e0baSJiaying Zhang 12000562e0baSJiaying Zhang TRACE_EVENT(ext4_direct_IO_enter, 12010562e0baSJiaying Zhang TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), 12020562e0baSJiaying Zhang 12030562e0baSJiaying Zhang TP_ARGS(inode, offset, len, rw), 12040562e0baSJiaying Zhang 12050562e0baSJiaying Zhang TP_STRUCT__entry( 12060562e0baSJiaying Zhang __field( dev_t, dev ) 1207210c0526SAnatol Pomozov __field( ino_t, ino ) 12080562e0baSJiaying Zhang __field( loff_t, pos ) 12090562e0baSJiaying Zhang __field( unsigned long, len ) 12100562e0baSJiaying Zhang __field( int, rw ) 12110562e0baSJiaying Zhang ), 12120562e0baSJiaying Zhang 12130562e0baSJiaying Zhang TP_fast_assign( 12140562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1215210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 12160562e0baSJiaying Zhang __entry->pos = offset; 12170562e0baSJiaying Zhang __entry->len = len; 12180562e0baSJiaying Zhang __entry->rw = rw; 12190562e0baSJiaying Zhang ), 12200562e0baSJiaying Zhang 1221a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", 12220562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 12230562e0baSJiaying Zhang (unsigned long) __entry->ino, 1224a9c667f8SLukas Czerner __entry->pos, __entry->len, __entry->rw) 12250562e0baSJiaying Zhang ); 12260562e0baSJiaying Zhang 12270562e0baSJiaying Zhang TRACE_EVENT(ext4_direct_IO_exit, 1228a9c667f8SLukas Czerner TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, 1229a9c667f8SLukas Czerner int rw, int ret), 12300562e0baSJiaying Zhang 12310562e0baSJiaying Zhang TP_ARGS(inode, offset, len, rw, ret), 12320562e0baSJiaying Zhang 12330562e0baSJiaying Zhang TP_STRUCT__entry( 12340562e0baSJiaying Zhang __field( dev_t, dev ) 1235210c0526SAnatol Pomozov __field( ino_t, ino ) 12360562e0baSJiaying Zhang __field( loff_t, pos ) 12370562e0baSJiaying Zhang __field( unsigned long, len ) 12380562e0baSJiaying Zhang __field( int, rw ) 12390562e0baSJiaying Zhang __field( int, ret ) 12400562e0baSJiaying Zhang ), 12410562e0baSJiaying Zhang 12420562e0baSJiaying Zhang TP_fast_assign( 12430562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1244210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 12450562e0baSJiaying Zhang __entry->pos = offset; 12460562e0baSJiaying Zhang __entry->len = len; 12470562e0baSJiaying Zhang __entry->rw = rw; 12480562e0baSJiaying Zhang __entry->ret = ret; 12490562e0baSJiaying Zhang ), 12500562e0baSJiaying Zhang 1251a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", 12520562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 12530562e0baSJiaying Zhang (unsigned long) __entry->ino, 1254a9c667f8SLukas Czerner __entry->pos, __entry->len, 12550562e0baSJiaying Zhang __entry->rw, __entry->ret) 12560562e0baSJiaying Zhang ); 12570562e0baSJiaying Zhang 12580562e0baSJiaying Zhang TRACE_EVENT(ext4_fallocate_enter, 12590562e0baSJiaying Zhang TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), 12600562e0baSJiaying Zhang 12610562e0baSJiaying Zhang TP_ARGS(inode, offset, len, mode), 12620562e0baSJiaying Zhang 12630562e0baSJiaying Zhang TP_STRUCT__entry( 12640562e0baSJiaying Zhang __field( dev_t, dev ) 1265210c0526SAnatol Pomozov __field( ino_t, ino ) 12660562e0baSJiaying Zhang __field( loff_t, pos ) 12670562e0baSJiaying Zhang __field( loff_t, len ) 12680562e0baSJiaying Zhang __field( int, mode ) 12690562e0baSJiaying Zhang ), 12700562e0baSJiaying Zhang 12710562e0baSJiaying Zhang TP_fast_assign( 12720562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1273210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 12740562e0baSJiaying Zhang __entry->pos = offset; 12750562e0baSJiaying Zhang __entry->len = len; 12760562e0baSJiaying Zhang __entry->mode = mode; 12770562e0baSJiaying Zhang ), 12780562e0baSJiaying Zhang 1279a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", 12800562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1281a9c667f8SLukas Czerner (unsigned long) __entry->ino, __entry->pos, 1282a9c667f8SLukas Czerner __entry->len, __entry->mode) 12830562e0baSJiaying Zhang ); 12840562e0baSJiaying Zhang 12850562e0baSJiaying Zhang TRACE_EVENT(ext4_fallocate_exit, 1286a9c667f8SLukas Czerner TP_PROTO(struct inode *inode, loff_t offset, 1287a9c667f8SLukas Czerner unsigned int max_blocks, int ret), 12880562e0baSJiaying Zhang 12890562e0baSJiaying Zhang TP_ARGS(inode, offset, max_blocks, ret), 12900562e0baSJiaying Zhang 12910562e0baSJiaying Zhang TP_STRUCT__entry( 12920562e0baSJiaying Zhang __field( dev_t, dev ) 1293210c0526SAnatol Pomozov __field( ino_t, ino ) 12940562e0baSJiaying Zhang __field( loff_t, pos ) 1295a9c667f8SLukas Czerner __field( unsigned int, blocks ) 12960562e0baSJiaying Zhang __field( int, ret ) 12970562e0baSJiaying Zhang ), 12980562e0baSJiaying Zhang 12990562e0baSJiaying Zhang TP_fast_assign( 13000562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1301210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 13020562e0baSJiaying Zhang __entry->pos = offset; 13030562e0baSJiaying Zhang __entry->blocks = max_blocks; 13040562e0baSJiaying Zhang __entry->ret = ret; 13050562e0baSJiaying Zhang ), 13060562e0baSJiaying Zhang 1307a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", 13080562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 13090562e0baSJiaying Zhang (unsigned long) __entry->ino, 1310a9c667f8SLukas Czerner __entry->pos, __entry->blocks, 13110562e0baSJiaying Zhang __entry->ret) 13120562e0baSJiaying Zhang ); 13130562e0baSJiaying Zhang 13140562e0baSJiaying Zhang TRACE_EVENT(ext4_unlink_enter, 13150562e0baSJiaying Zhang TP_PROTO(struct inode *parent, struct dentry *dentry), 13160562e0baSJiaying Zhang 13170562e0baSJiaying Zhang TP_ARGS(parent, dentry), 13180562e0baSJiaying Zhang 13190562e0baSJiaying Zhang TP_STRUCT__entry( 13200562e0baSJiaying Zhang __field( dev_t, dev ) 1321210c0526SAnatol Pomozov __field( ino_t, ino ) 1322210c0526SAnatol Pomozov __field( ino_t, parent ) 1323210c0526SAnatol Pomozov __field( loff_t, size ) 13240562e0baSJiaying Zhang ), 13250562e0baSJiaying Zhang 13260562e0baSJiaying Zhang TP_fast_assign( 13270562e0baSJiaying Zhang __entry->dev = dentry->d_inode->i_sb->s_dev; 1328210c0526SAnatol Pomozov __entry->ino = dentry->d_inode->i_ino; 1329210c0526SAnatol Pomozov __entry->parent = parent->i_ino; 1330210c0526SAnatol Pomozov __entry->size = dentry->d_inode->i_size; 13310562e0baSJiaying Zhang ), 13320562e0baSJiaying Zhang 1333a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu size %lld parent %lu", 13340562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 13350562e0baSJiaying Zhang (unsigned long) __entry->ino, __entry->size, 13360562e0baSJiaying Zhang (unsigned long) __entry->parent) 13370562e0baSJiaying Zhang ); 13380562e0baSJiaying Zhang 13390562e0baSJiaying Zhang TRACE_EVENT(ext4_unlink_exit, 13400562e0baSJiaying Zhang TP_PROTO(struct dentry *dentry, int ret), 13410562e0baSJiaying Zhang 13420562e0baSJiaying Zhang TP_ARGS(dentry, ret), 13430562e0baSJiaying Zhang 13440562e0baSJiaying Zhang TP_STRUCT__entry( 13450562e0baSJiaying Zhang __field( dev_t, dev ) 1346210c0526SAnatol Pomozov __field( ino_t, ino ) 13470562e0baSJiaying Zhang __field( int, ret ) 13480562e0baSJiaying Zhang ), 13490562e0baSJiaying Zhang 13500562e0baSJiaying Zhang TP_fast_assign( 13510562e0baSJiaying Zhang __entry->dev = dentry->d_inode->i_sb->s_dev; 1352210c0526SAnatol Pomozov __entry->ino = dentry->d_inode->i_ino; 13530562e0baSJiaying Zhang __entry->ret = ret; 13540562e0baSJiaying Zhang ), 13550562e0baSJiaying Zhang 1356a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu ret %d", 13570562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 13580562e0baSJiaying Zhang (unsigned long) __entry->ino, 13590562e0baSJiaying Zhang __entry->ret) 13600562e0baSJiaying Zhang ); 13610562e0baSJiaying Zhang 13620562e0baSJiaying Zhang DECLARE_EVENT_CLASS(ext4__truncate, 13630562e0baSJiaying Zhang TP_PROTO(struct inode *inode), 13640562e0baSJiaying Zhang 13650562e0baSJiaying Zhang TP_ARGS(inode), 13660562e0baSJiaying Zhang 13670562e0baSJiaying Zhang TP_STRUCT__entry( 13680562e0baSJiaying Zhang __field( dev_t, dev ) 1369210c0526SAnatol Pomozov __field( ino_t, ino ) 1370a9c667f8SLukas Czerner __field( __u64, blocks ) 13710562e0baSJiaying Zhang ), 13720562e0baSJiaying Zhang 13730562e0baSJiaying Zhang TP_fast_assign( 13740562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1375210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 13760562e0baSJiaying Zhang __entry->blocks = inode->i_blocks; 13770562e0baSJiaying Zhang ), 13780562e0baSJiaying Zhang 1379a9c667f8SLukas Czerner TP_printk("dev %d,%d ino %lu blocks %llu", 13800562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 1381a9c667f8SLukas Czerner (unsigned long) __entry->ino, __entry->blocks) 13820562e0baSJiaying Zhang ); 13830562e0baSJiaying Zhang 13840562e0baSJiaying Zhang DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, 13850562e0baSJiaying Zhang 13860562e0baSJiaying Zhang TP_PROTO(struct inode *inode), 13870562e0baSJiaying Zhang 13880562e0baSJiaying Zhang TP_ARGS(inode) 13890562e0baSJiaying Zhang ); 13900562e0baSJiaying Zhang 13910562e0baSJiaying Zhang DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, 13920562e0baSJiaying Zhang 13930562e0baSJiaying Zhang TP_PROTO(struct inode *inode), 13940562e0baSJiaying Zhang 13950562e0baSJiaying Zhang TP_ARGS(inode) 13960562e0baSJiaying Zhang ); 13970562e0baSJiaying Zhang 13986f91bc5fSEric Gouriou /* 'ux' is the uninitialized extent. */ 13996f91bc5fSEric Gouriou TRACE_EVENT(ext4_ext_convert_to_initialized_enter, 14006f91bc5fSEric Gouriou TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, 14016f91bc5fSEric Gouriou struct ext4_extent *ux), 14026f91bc5fSEric Gouriou 14036f91bc5fSEric Gouriou TP_ARGS(inode, map, ux), 14046f91bc5fSEric Gouriou 14056f91bc5fSEric Gouriou TP_STRUCT__entry( 14066f91bc5fSEric Gouriou __field( dev_t, dev ) 1407210c0526SAnatol Pomozov __field( ino_t, ino ) 14086f91bc5fSEric Gouriou __field( ext4_lblk_t, m_lblk ) 14096f91bc5fSEric Gouriou __field( unsigned, m_len ) 14106f91bc5fSEric Gouriou __field( ext4_lblk_t, u_lblk ) 14116f91bc5fSEric Gouriou __field( unsigned, u_len ) 14126f91bc5fSEric Gouriou __field( ext4_fsblk_t, u_pblk ) 14136f91bc5fSEric Gouriou ), 14146f91bc5fSEric Gouriou 14156f91bc5fSEric Gouriou TP_fast_assign( 14166f91bc5fSEric Gouriou __entry->dev = inode->i_sb->s_dev; 1417210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 14186f91bc5fSEric Gouriou __entry->m_lblk = map->m_lblk; 14196f91bc5fSEric Gouriou __entry->m_len = map->m_len; 14206f91bc5fSEric Gouriou __entry->u_lblk = le32_to_cpu(ux->ee_block); 14216f91bc5fSEric Gouriou __entry->u_len = ext4_ext_get_actual_len(ux); 14226f91bc5fSEric Gouriou __entry->u_pblk = ext4_ext_pblock(ux); 14236f91bc5fSEric Gouriou ), 14246f91bc5fSEric Gouriou 14256f91bc5fSEric Gouriou TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u " 14266f91bc5fSEric Gouriou "u_pblk %llu", 14276f91bc5fSEric Gouriou MAJOR(__entry->dev), MINOR(__entry->dev), 14286f91bc5fSEric Gouriou (unsigned long) __entry->ino, 14296f91bc5fSEric Gouriou __entry->m_lblk, __entry->m_len, 14306f91bc5fSEric Gouriou __entry->u_lblk, __entry->u_len, __entry->u_pblk) 14316f91bc5fSEric Gouriou ); 14326f91bc5fSEric Gouriou 14336f91bc5fSEric Gouriou /* 14346f91bc5fSEric Gouriou * 'ux' is the uninitialized extent. 14356f91bc5fSEric Gouriou * 'ix' is the initialized extent to which blocks are transferred. 14366f91bc5fSEric Gouriou */ 14376f91bc5fSEric Gouriou TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, 14386f91bc5fSEric Gouriou TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, 14396f91bc5fSEric Gouriou struct ext4_extent *ux, struct ext4_extent *ix), 14406f91bc5fSEric Gouriou 14416f91bc5fSEric Gouriou TP_ARGS(inode, map, ux, ix), 14426f91bc5fSEric Gouriou 14436f91bc5fSEric Gouriou TP_STRUCT__entry( 14446f91bc5fSEric Gouriou __field( dev_t, dev ) 1445210c0526SAnatol Pomozov __field( ino_t, ino ) 14466f91bc5fSEric Gouriou __field( ext4_lblk_t, m_lblk ) 14476f91bc5fSEric Gouriou __field( unsigned, m_len ) 14486f91bc5fSEric Gouriou __field( ext4_lblk_t, u_lblk ) 14496f91bc5fSEric Gouriou __field( unsigned, u_len ) 14506f91bc5fSEric Gouriou __field( ext4_fsblk_t, u_pblk ) 14516f91bc5fSEric Gouriou __field( ext4_lblk_t, i_lblk ) 14526f91bc5fSEric Gouriou __field( unsigned, i_len ) 14536f91bc5fSEric Gouriou __field( ext4_fsblk_t, i_pblk ) 14546f91bc5fSEric Gouriou ), 14556f91bc5fSEric Gouriou 14566f91bc5fSEric Gouriou TP_fast_assign( 14576f91bc5fSEric Gouriou __entry->dev = inode->i_sb->s_dev; 1458210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 14596f91bc5fSEric Gouriou __entry->m_lblk = map->m_lblk; 14606f91bc5fSEric Gouriou __entry->m_len = map->m_len; 14616f91bc5fSEric Gouriou __entry->u_lblk = le32_to_cpu(ux->ee_block); 14626f91bc5fSEric Gouriou __entry->u_len = ext4_ext_get_actual_len(ux); 14636f91bc5fSEric Gouriou __entry->u_pblk = ext4_ext_pblock(ux); 14646f91bc5fSEric Gouriou __entry->i_lblk = le32_to_cpu(ix->ee_block); 14656f91bc5fSEric Gouriou __entry->i_len = ext4_ext_get_actual_len(ix); 14666f91bc5fSEric Gouriou __entry->i_pblk = ext4_ext_pblock(ix); 14676f91bc5fSEric Gouriou ), 14686f91bc5fSEric Gouriou 14696f91bc5fSEric Gouriou TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u " 14706f91bc5fSEric Gouriou "u_lblk %u u_len %u u_pblk %llu " 14716f91bc5fSEric Gouriou "i_lblk %u i_len %u i_pblk %llu ", 14726f91bc5fSEric Gouriou MAJOR(__entry->dev), MINOR(__entry->dev), 14736f91bc5fSEric Gouriou (unsigned long) __entry->ino, 14746f91bc5fSEric Gouriou __entry->m_lblk, __entry->m_len, 14756f91bc5fSEric Gouriou __entry->u_lblk, __entry->u_len, __entry->u_pblk, 14766f91bc5fSEric Gouriou __entry->i_lblk, __entry->i_len, __entry->i_pblk) 14776f91bc5fSEric Gouriou ); 14786f91bc5fSEric Gouriou 14790562e0baSJiaying Zhang DECLARE_EVENT_CLASS(ext4__map_blocks_enter, 14800562e0baSJiaying Zhang TP_PROTO(struct inode *inode, ext4_lblk_t lblk, 1481a9c667f8SLukas Czerner unsigned int len, unsigned int flags), 14820562e0baSJiaying Zhang 14830562e0baSJiaying Zhang TP_ARGS(inode, lblk, len, flags), 14840562e0baSJiaying Zhang 14850562e0baSJiaying Zhang TP_STRUCT__entry( 14860562e0baSJiaying Zhang __field( dev_t, dev ) 1487210c0526SAnatol Pomozov __field( ino_t, ino ) 14880562e0baSJiaying Zhang __field( ext4_lblk_t, lblk ) 1489a9c667f8SLukas Czerner __field( unsigned int, len ) 1490a9c667f8SLukas Czerner __field( unsigned int, flags ) 14910562e0baSJiaying Zhang ), 14920562e0baSJiaying Zhang 14930562e0baSJiaying Zhang TP_fast_assign( 14940562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1495210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 14960562e0baSJiaying Zhang __entry->lblk = lblk; 14970562e0baSJiaying Zhang __entry->len = len; 14980562e0baSJiaying Zhang __entry->flags = flags; 14990562e0baSJiaying Zhang ), 15000562e0baSJiaying Zhang 15010562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", 15020562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 15030562e0baSJiaying Zhang (unsigned long) __entry->ino, 1504a9c667f8SLukas Czerner __entry->lblk, __entry->len, __entry->flags) 15050562e0baSJiaying Zhang ); 15060562e0baSJiaying Zhang 15070562e0baSJiaying Zhang DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, 15080562e0baSJiaying Zhang TP_PROTO(struct inode *inode, ext4_lblk_t lblk, 15090562e0baSJiaying Zhang unsigned len, unsigned flags), 15100562e0baSJiaying Zhang 15110562e0baSJiaying Zhang TP_ARGS(inode, lblk, len, flags) 15120562e0baSJiaying Zhang ); 15130562e0baSJiaying Zhang 15140562e0baSJiaying Zhang DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, 15150562e0baSJiaying Zhang TP_PROTO(struct inode *inode, ext4_lblk_t lblk, 15160562e0baSJiaying Zhang unsigned len, unsigned flags), 15170562e0baSJiaying Zhang 15180562e0baSJiaying Zhang TP_ARGS(inode, lblk, len, flags) 15190562e0baSJiaying Zhang ); 15200562e0baSJiaying Zhang 15210562e0baSJiaying Zhang DECLARE_EVENT_CLASS(ext4__map_blocks_exit, 152219b303d8SZheng Liu TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), 15230562e0baSJiaying Zhang 152419b303d8SZheng Liu TP_ARGS(inode, map, ret), 15250562e0baSJiaying Zhang 15260562e0baSJiaying Zhang TP_STRUCT__entry( 15270562e0baSJiaying Zhang __field( dev_t, dev ) 1528210c0526SAnatol Pomozov __field( ino_t, ino ) 15290562e0baSJiaying Zhang __field( ext4_fsblk_t, pblk ) 1530210c0526SAnatol Pomozov __field( ext4_lblk_t, lblk ) 1531a9c667f8SLukas Czerner __field( unsigned int, len ) 153219b303d8SZheng Liu __field( unsigned int, flags ) 15330562e0baSJiaying Zhang __field( int, ret ) 15340562e0baSJiaying Zhang ), 15350562e0baSJiaying Zhang 15360562e0baSJiaying Zhang TP_fast_assign( 15370562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1538210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 153919b303d8SZheng Liu __entry->pblk = map->m_pblk; 154019b303d8SZheng Liu __entry->lblk = map->m_lblk; 154119b303d8SZheng Liu __entry->len = map->m_len; 154219b303d8SZheng Liu __entry->flags = map->m_flags; 15430562e0baSJiaying Zhang __entry->ret = ret; 15440562e0baSJiaying Zhang ), 15450562e0baSJiaying Zhang 154619b303d8SZheng Liu TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d", 15470562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 15480562e0baSJiaying Zhang (unsigned long) __entry->ino, 1549a9c667f8SLukas Czerner __entry->lblk, __entry->pblk, 155019b303d8SZheng Liu __entry->len, __entry->flags, __entry->ret) 15510562e0baSJiaying Zhang ); 15520562e0baSJiaying Zhang 15530562e0baSJiaying Zhang DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, 155419b303d8SZheng Liu TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), 15550562e0baSJiaying Zhang 155619b303d8SZheng Liu TP_ARGS(inode, map, ret) 15570562e0baSJiaying Zhang ); 15580562e0baSJiaying Zhang 15590562e0baSJiaying Zhang DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, 156019b303d8SZheng Liu TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), 15610562e0baSJiaying Zhang 156219b303d8SZheng Liu TP_ARGS(inode, map, ret) 15630562e0baSJiaying Zhang ); 15640562e0baSJiaying Zhang 15650562e0baSJiaying Zhang TRACE_EVENT(ext4_ext_load_extent, 15660562e0baSJiaying Zhang TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), 15670562e0baSJiaying Zhang 15680562e0baSJiaying Zhang TP_ARGS(inode, lblk, pblk), 15690562e0baSJiaying Zhang 15700562e0baSJiaying Zhang TP_STRUCT__entry( 15710562e0baSJiaying Zhang __field( dev_t, dev ) 1572210c0526SAnatol Pomozov __field( ino_t, ino ) 15730562e0baSJiaying Zhang __field( ext4_fsblk_t, pblk ) 1574210c0526SAnatol Pomozov __field( ext4_lblk_t, lblk ) 15750562e0baSJiaying Zhang ), 15760562e0baSJiaying Zhang 15770562e0baSJiaying Zhang TP_fast_assign( 15780562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1579210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 15800562e0baSJiaying Zhang __entry->pblk = pblk; 1581210c0526SAnatol Pomozov __entry->lblk = lblk; 15820562e0baSJiaying Zhang ), 15830562e0baSJiaying Zhang 15840562e0baSJiaying Zhang TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", 15850562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 15860562e0baSJiaying Zhang (unsigned long) __entry->ino, 1587a9c667f8SLukas Czerner __entry->lblk, __entry->pblk) 15880562e0baSJiaying Zhang ); 15890562e0baSJiaying Zhang 15900562e0baSJiaying Zhang TRACE_EVENT(ext4_load_inode, 15910562e0baSJiaying Zhang TP_PROTO(struct inode *inode), 15920562e0baSJiaying Zhang 15930562e0baSJiaying Zhang TP_ARGS(inode), 15940562e0baSJiaying Zhang 15950562e0baSJiaying Zhang TP_STRUCT__entry( 15960562e0baSJiaying Zhang __field( dev_t, dev ) 1597210c0526SAnatol Pomozov __field( ino_t, ino ) 15980562e0baSJiaying Zhang ), 15990562e0baSJiaying Zhang 16000562e0baSJiaying Zhang TP_fast_assign( 16010562e0baSJiaying Zhang __entry->dev = inode->i_sb->s_dev; 1602210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 16030562e0baSJiaying Zhang ), 16040562e0baSJiaying Zhang 16050562e0baSJiaying Zhang TP_printk("dev %d,%d ino %ld", 16060562e0baSJiaying Zhang MAJOR(__entry->dev), MINOR(__entry->dev), 16070562e0baSJiaying Zhang (unsigned long) __entry->ino) 16080562e0baSJiaying Zhang ); 16090562e0baSJiaying Zhang 161012706394STheodore Ts'o TRACE_EVENT(ext4_journal_start, 161112706394STheodore Ts'o TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), 161212706394STheodore Ts'o 161312706394STheodore Ts'o TP_ARGS(sb, nblocks, IP), 161412706394STheodore Ts'o 161512706394STheodore Ts'o TP_STRUCT__entry( 161612706394STheodore Ts'o __field( dev_t, dev ) 161712706394STheodore Ts'o __field(unsigned long, ip ) 1618210c0526SAnatol Pomozov __field( int, nblocks ) 161912706394STheodore Ts'o ), 162012706394STheodore Ts'o 162112706394STheodore Ts'o TP_fast_assign( 162212706394STheodore Ts'o __entry->dev = sb->s_dev; 162312706394STheodore Ts'o __entry->ip = IP; 1624210c0526SAnatol Pomozov __entry->nblocks = nblocks; 162512706394STheodore Ts'o ), 162612706394STheodore Ts'o 162712706394STheodore Ts'o TP_printk("dev %d,%d nblocks %d caller %pF", 162812706394STheodore Ts'o MAJOR(__entry->dev), MINOR(__entry->dev), 162912706394STheodore Ts'o __entry->nblocks, (void *)__entry->ip) 163012706394STheodore Ts'o ); 163112706394STheodore Ts'o 1632b3d4c2b1STao Ma DECLARE_EVENT_CLASS(ext4__trim, 1633b3d4c2b1STao Ma TP_PROTO(struct super_block *sb, 1634b3d4c2b1STao Ma ext4_group_t group, 1635b3d4c2b1STao Ma ext4_grpblk_t start, 1636b3d4c2b1STao Ma ext4_grpblk_t len), 1637b3d4c2b1STao Ma 1638b3d4c2b1STao Ma TP_ARGS(sb, group, start, len), 1639b3d4c2b1STao Ma 1640b3d4c2b1STao Ma TP_STRUCT__entry( 1641b3d4c2b1STao Ma __field( int, dev_major ) 1642b3d4c2b1STao Ma __field( int, dev_minor ) 1643b3d4c2b1STao Ma __field( __u32, group ) 1644b3d4c2b1STao Ma __field( int, start ) 1645b3d4c2b1STao Ma __field( int, len ) 1646b3d4c2b1STao Ma ), 1647b3d4c2b1STao Ma 1648b3d4c2b1STao Ma TP_fast_assign( 1649b3d4c2b1STao Ma __entry->dev_major = MAJOR(sb->s_dev); 1650b3d4c2b1STao Ma __entry->dev_minor = MINOR(sb->s_dev); 1651b3d4c2b1STao Ma __entry->group = group; 1652b3d4c2b1STao Ma __entry->start = start; 1653b3d4c2b1STao Ma __entry->len = len; 1654b3d4c2b1STao Ma ), 1655b3d4c2b1STao Ma 1656b3d4c2b1STao Ma TP_printk("dev %d,%d group %u, start %d, len %d", 1657b3d4c2b1STao Ma __entry->dev_major, __entry->dev_minor, 1658b3d4c2b1STao Ma __entry->group, __entry->start, __entry->len) 1659b3d4c2b1STao Ma ); 1660b3d4c2b1STao Ma 1661b3d4c2b1STao Ma DEFINE_EVENT(ext4__trim, ext4_trim_extent, 1662b3d4c2b1STao Ma 1663b3d4c2b1STao Ma TP_PROTO(struct super_block *sb, 1664b3d4c2b1STao Ma ext4_group_t group, 1665b3d4c2b1STao Ma ext4_grpblk_t start, 1666b3d4c2b1STao Ma ext4_grpblk_t len), 1667b3d4c2b1STao Ma 1668b3d4c2b1STao Ma TP_ARGS(sb, group, start, len) 1669b3d4c2b1STao Ma ); 1670b3d4c2b1STao Ma 1671b3d4c2b1STao Ma DEFINE_EVENT(ext4__trim, ext4_trim_all_free, 1672b3d4c2b1STao Ma 1673b3d4c2b1STao Ma TP_PROTO(struct super_block *sb, 1674b3d4c2b1STao Ma ext4_group_t group, 1675b3d4c2b1STao Ma ext4_grpblk_t start, 1676b3d4c2b1STao Ma ext4_grpblk_t len), 1677b3d4c2b1STao Ma 1678b3d4c2b1STao Ma TP_ARGS(sb, group, start, len) 1679b3d4c2b1STao Ma ); 1680b3d4c2b1STao Ma 1681d8990240SAditya Kali TRACE_EVENT(ext4_ext_handle_uninitialized_extents, 1682b5645534SZheng Liu TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags, 1683d8990240SAditya Kali unsigned int allocated, ext4_fsblk_t newblock), 1684d8990240SAditya Kali 1685b5645534SZheng Liu TP_ARGS(inode, map, flags, allocated, newblock), 1686d8990240SAditya Kali 1687d8990240SAditya Kali TP_STRUCT__entry( 1688d8990240SAditya Kali __field( dev_t, dev ) 1689210c0526SAnatol Pomozov __field( ino_t, ino ) 1690210c0526SAnatol Pomozov __field( int, flags ) 1691d8990240SAditya Kali __field( ext4_lblk_t, lblk ) 1692d8990240SAditya Kali __field( ext4_fsblk_t, pblk ) 1693d8990240SAditya Kali __field( unsigned int, len ) 1694d8990240SAditya Kali __field( unsigned int, allocated ) 1695d8990240SAditya Kali __field( ext4_fsblk_t, newblk ) 1696d8990240SAditya Kali ), 1697d8990240SAditya Kali 1698d8990240SAditya Kali TP_fast_assign( 1699d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1700210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1701b5645534SZheng Liu __entry->flags = flags; 1702d8990240SAditya Kali __entry->lblk = map->m_lblk; 1703d8990240SAditya Kali __entry->pblk = map->m_pblk; 1704d8990240SAditya Kali __entry->len = map->m_len; 1705d8990240SAditya Kali __entry->allocated = allocated; 1706d8990240SAditya Kali __entry->newblk = newblock; 1707d8990240SAditya Kali ), 1708d8990240SAditya Kali 1709b5645534SZheng Liu TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %x " 1710d8990240SAditya Kali "allocated %d newblock %llu", 1711d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1712d8990240SAditya Kali (unsigned long) __entry->ino, 1713d8990240SAditya Kali (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, 1714d8990240SAditya Kali __entry->len, __entry->flags, 1715d8990240SAditya Kali (unsigned int) __entry->allocated, 1716d8990240SAditya Kali (unsigned long long) __entry->newblk) 1717d8990240SAditya Kali ); 1718d8990240SAditya Kali 1719d8990240SAditya Kali TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, 1720d8990240SAditya Kali TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), 1721d8990240SAditya Kali 1722d8990240SAditya Kali TP_ARGS(sb, map, ret), 1723d8990240SAditya Kali 1724d8990240SAditya Kali TP_STRUCT__entry( 1725d8990240SAditya Kali __field( dev_t, dev ) 1726210c0526SAnatol Pomozov __field( unsigned int, flags ) 1727d8990240SAditya Kali __field( ext4_lblk_t, lblk ) 1728d8990240SAditya Kali __field( ext4_fsblk_t, pblk ) 1729d8990240SAditya Kali __field( unsigned int, len ) 1730d8990240SAditya Kali __field( int, ret ) 1731d8990240SAditya Kali ), 1732d8990240SAditya Kali 1733d8990240SAditya Kali TP_fast_assign( 1734d8990240SAditya Kali __entry->dev = sb->s_dev; 1735210c0526SAnatol Pomozov __entry->flags = map->m_flags; 1736d8990240SAditya Kali __entry->lblk = map->m_lblk; 1737d8990240SAditya Kali __entry->pblk = map->m_pblk; 1738d8990240SAditya Kali __entry->len = map->m_len; 1739d8990240SAditya Kali __entry->ret = ret; 1740d8990240SAditya Kali ), 1741d8990240SAditya Kali 1742d8990240SAditya Kali TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d", 1743d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1744d8990240SAditya Kali __entry->lblk, (unsigned long long) __entry->pblk, 1745d8990240SAditya Kali __entry->len, __entry->flags, __entry->ret) 1746d8990240SAditya Kali ); 1747d8990240SAditya Kali 1748d8990240SAditya Kali TRACE_EVENT(ext4_ext_put_in_cache, 1749d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, 1750d8990240SAditya Kali ext4_fsblk_t start), 1751d8990240SAditya Kali 1752d8990240SAditya Kali TP_ARGS(inode, lblk, len, start), 1753d8990240SAditya Kali 1754d8990240SAditya Kali TP_STRUCT__entry( 1755d8990240SAditya Kali __field( dev_t, dev ) 1756210c0526SAnatol Pomozov __field( ino_t, ino ) 1757d8990240SAditya Kali __field( ext4_lblk_t, lblk ) 1758d8990240SAditya Kali __field( unsigned int, len ) 1759d8990240SAditya Kali __field( ext4_fsblk_t, start ) 1760d8990240SAditya Kali ), 1761d8990240SAditya Kali 1762d8990240SAditya Kali TP_fast_assign( 1763d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1764210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1765d8990240SAditya Kali __entry->lblk = lblk; 1766d8990240SAditya Kali __entry->len = len; 1767d8990240SAditya Kali __entry->start = start; 1768d8990240SAditya Kali ), 1769d8990240SAditya Kali 1770d8990240SAditya Kali TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu", 1771d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1772d8990240SAditya Kali (unsigned long) __entry->ino, 1773d8990240SAditya Kali (unsigned) __entry->lblk, 1774d8990240SAditya Kali __entry->len, 1775d8990240SAditya Kali (unsigned long long) __entry->start) 1776d8990240SAditya Kali ); 1777d8990240SAditya Kali 1778d8990240SAditya Kali TRACE_EVENT(ext4_ext_in_cache, 1779d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), 1780d8990240SAditya Kali 1781d8990240SAditya Kali TP_ARGS(inode, lblk, ret), 1782d8990240SAditya Kali 1783d8990240SAditya Kali TP_STRUCT__entry( 1784d8990240SAditya Kali __field( dev_t, dev ) 1785210c0526SAnatol Pomozov __field( ino_t, ino ) 1786d8990240SAditya Kali __field( ext4_lblk_t, lblk ) 1787d8990240SAditya Kali __field( int, ret ) 1788d8990240SAditya Kali ), 1789d8990240SAditya Kali 1790d8990240SAditya Kali TP_fast_assign( 1791d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1792210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1793d8990240SAditya Kali __entry->lblk = lblk; 1794d8990240SAditya Kali __entry->ret = ret; 1795d8990240SAditya Kali ), 1796d8990240SAditya Kali 1797d8990240SAditya Kali TP_printk("dev %d,%d ino %lu lblk %u ret %d", 1798d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1799d8990240SAditya Kali (unsigned long) __entry->ino, 1800d8990240SAditya Kali (unsigned) __entry->lblk, 1801d8990240SAditya Kali __entry->ret) 1802d8990240SAditya Kali 1803d8990240SAditya Kali ); 1804d8990240SAditya Kali 1805d8990240SAditya Kali TRACE_EVENT(ext4_find_delalloc_range, 1806d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, 1807d8990240SAditya Kali int reverse, int found, ext4_lblk_t found_blk), 1808d8990240SAditya Kali 1809d8990240SAditya Kali TP_ARGS(inode, from, to, reverse, found, found_blk), 1810d8990240SAditya Kali 1811d8990240SAditya Kali TP_STRUCT__entry( 1812d8990240SAditya Kali __field( dev_t, dev ) 1813210c0526SAnatol Pomozov __field( ino_t, ino ) 1814d8990240SAditya Kali __field( ext4_lblk_t, from ) 1815d8990240SAditya Kali __field( ext4_lblk_t, to ) 1816d8990240SAditya Kali __field( int, reverse ) 1817d8990240SAditya Kali __field( int, found ) 1818d8990240SAditya Kali __field( ext4_lblk_t, found_blk ) 1819d8990240SAditya Kali ), 1820d8990240SAditya Kali 1821d8990240SAditya Kali TP_fast_assign( 1822d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1823210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1824d8990240SAditya Kali __entry->from = from; 1825d8990240SAditya Kali __entry->to = to; 1826d8990240SAditya Kali __entry->reverse = reverse; 1827d8990240SAditya Kali __entry->found = found; 1828d8990240SAditya Kali __entry->found_blk = found_blk; 1829d8990240SAditya Kali ), 1830d8990240SAditya Kali 1831d8990240SAditya Kali TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d " 1832d8990240SAditya Kali "(blk = %u)", 1833d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1834d8990240SAditya Kali (unsigned long) __entry->ino, 1835d8990240SAditya Kali (unsigned) __entry->from, (unsigned) __entry->to, 1836d8990240SAditya Kali __entry->reverse, __entry->found, 1837d8990240SAditya Kali (unsigned) __entry->found_blk) 1838d8990240SAditya Kali ); 1839d8990240SAditya Kali 1840d8990240SAditya Kali TRACE_EVENT(ext4_get_reserved_cluster_alloc, 1841d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), 1842d8990240SAditya Kali 1843d8990240SAditya Kali TP_ARGS(inode, lblk, len), 1844d8990240SAditya Kali 1845d8990240SAditya Kali TP_STRUCT__entry( 1846d8990240SAditya Kali __field( dev_t, dev ) 1847210c0526SAnatol Pomozov __field( ino_t, ino ) 1848d8990240SAditya Kali __field( ext4_lblk_t, lblk ) 1849d8990240SAditya Kali __field( unsigned int, len ) 1850d8990240SAditya Kali ), 1851d8990240SAditya Kali 1852d8990240SAditya Kali TP_fast_assign( 1853d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1854210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1855d8990240SAditya Kali __entry->lblk = lblk; 1856d8990240SAditya Kali __entry->len = len; 1857d8990240SAditya Kali ), 1858d8990240SAditya Kali 1859d8990240SAditya Kali TP_printk("dev %d,%d ino %lu lblk %u len %u", 1860d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1861d8990240SAditya Kali (unsigned long) __entry->ino, 1862d8990240SAditya Kali (unsigned) __entry->lblk, 1863d8990240SAditya Kali __entry->len) 1864d8990240SAditya Kali ); 1865d8990240SAditya Kali 1866d8990240SAditya Kali TRACE_EVENT(ext4_ext_show_extent, 1867d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, 1868d8990240SAditya Kali unsigned short len), 1869d8990240SAditya Kali 1870d8990240SAditya Kali TP_ARGS(inode, lblk, pblk, len), 1871d8990240SAditya Kali 1872d8990240SAditya Kali TP_STRUCT__entry( 1873d8990240SAditya Kali __field( dev_t, dev ) 1874210c0526SAnatol Pomozov __field( ino_t, ino ) 1875d8990240SAditya Kali __field( ext4_fsblk_t, pblk ) 1876210c0526SAnatol Pomozov __field( ext4_lblk_t, lblk ) 1877d8990240SAditya Kali __field( unsigned short, len ) 1878d8990240SAditya Kali ), 1879d8990240SAditya Kali 1880d8990240SAditya Kali TP_fast_assign( 1881d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1882210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1883d8990240SAditya Kali __entry->pblk = pblk; 1884210c0526SAnatol Pomozov __entry->lblk = lblk; 1885d8990240SAditya Kali __entry->len = len; 1886d8990240SAditya Kali ), 1887d8990240SAditya Kali 1888d8990240SAditya Kali TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u", 1889d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1890d8990240SAditya Kali (unsigned long) __entry->ino, 1891d8990240SAditya Kali (unsigned) __entry->lblk, 1892d8990240SAditya Kali (unsigned long long) __entry->pblk, 1893d8990240SAditya Kali (unsigned short) __entry->len) 1894d8990240SAditya Kali ); 1895d8990240SAditya Kali 1896d8990240SAditya Kali TRACE_EVENT(ext4_remove_blocks, 1897d8990240SAditya Kali TP_PROTO(struct inode *inode, struct ext4_extent *ex, 1898d8990240SAditya Kali ext4_lblk_t from, ext4_fsblk_t to, 1899d8990240SAditya Kali ext4_fsblk_t partial_cluster), 1900d8990240SAditya Kali 1901d8990240SAditya Kali TP_ARGS(inode, ex, from, to, partial_cluster), 1902d8990240SAditya Kali 1903d8990240SAditya Kali TP_STRUCT__entry( 1904d8990240SAditya Kali __field( dev_t, dev ) 1905210c0526SAnatol Pomozov __field( ino_t, ino ) 1906d8990240SAditya Kali __field( ext4_lblk_t, from ) 1907d8990240SAditya Kali __field( ext4_lblk_t, to ) 1908d8990240SAditya Kali __field( ext4_fsblk_t, partial ) 1909210c0526SAnatol Pomozov __field( ext4_fsblk_t, ee_pblk ) 1910210c0526SAnatol Pomozov __field( ext4_lblk_t, ee_lblk ) 1911210c0526SAnatol Pomozov __field( unsigned short, ee_len ) 1912d8990240SAditya Kali ), 1913d8990240SAditya Kali 1914d8990240SAditya Kali TP_fast_assign( 1915d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1916210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1917d8990240SAditya Kali __entry->from = from; 1918d8990240SAditya Kali __entry->to = to; 1919d8990240SAditya Kali __entry->partial = partial_cluster; 1920210c0526SAnatol Pomozov __entry->ee_pblk = ext4_ext_pblock(ex); 1921210c0526SAnatol Pomozov __entry->ee_lblk = cpu_to_le32(ex->ee_block); 1922210c0526SAnatol Pomozov __entry->ee_len = ext4_ext_get_actual_len(ex); 1923d8990240SAditya Kali ), 1924d8990240SAditya Kali 1925d8990240SAditya Kali TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" 1926d8990240SAditya Kali "from %u to %u partial_cluster %u", 1927d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1928d8990240SAditya Kali (unsigned long) __entry->ino, 1929d8990240SAditya Kali (unsigned) __entry->ee_lblk, 1930d8990240SAditya Kali (unsigned long long) __entry->ee_pblk, 1931d8990240SAditya Kali (unsigned short) __entry->ee_len, 1932d8990240SAditya Kali (unsigned) __entry->from, 1933d8990240SAditya Kali (unsigned) __entry->to, 1934d8990240SAditya Kali (unsigned) __entry->partial) 1935d8990240SAditya Kali ); 1936d8990240SAditya Kali 1937d8990240SAditya Kali TRACE_EVENT(ext4_ext_rm_leaf, 1938d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t start, 1939d8990240SAditya Kali struct ext4_extent *ex, ext4_fsblk_t partial_cluster), 1940d8990240SAditya Kali 1941d8990240SAditya Kali TP_ARGS(inode, start, ex, partial_cluster), 1942d8990240SAditya Kali 1943d8990240SAditya Kali TP_STRUCT__entry( 1944d8990240SAditya Kali __field( dev_t, dev ) 1945210c0526SAnatol Pomozov __field( ino_t, ino ) 1946210c0526SAnatol Pomozov __field( ext4_fsblk_t, partial ) 1947d8990240SAditya Kali __field( ext4_lblk_t, start ) 1948d8990240SAditya Kali __field( ext4_lblk_t, ee_lblk ) 1949d8990240SAditya Kali __field( ext4_fsblk_t, ee_pblk ) 1950d8990240SAditya Kali __field( short, ee_len ) 1951d8990240SAditya Kali ), 1952d8990240SAditya Kali 1953d8990240SAditya Kali TP_fast_assign( 1954d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1955210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1956210c0526SAnatol Pomozov __entry->partial = partial_cluster; 1957d8990240SAditya Kali __entry->start = start; 1958d8990240SAditya Kali __entry->ee_lblk = le32_to_cpu(ex->ee_block); 1959d8990240SAditya Kali __entry->ee_pblk = ext4_ext_pblock(ex); 1960d8990240SAditya Kali __entry->ee_len = ext4_ext_get_actual_len(ex); 1961d8990240SAditya Kali ), 1962d8990240SAditya Kali 1963d8990240SAditya Kali TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" 1964d8990240SAditya Kali "partial_cluster %u", 1965d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1966d8990240SAditya Kali (unsigned long) __entry->ino, 1967d8990240SAditya Kali (unsigned) __entry->start, 1968d8990240SAditya Kali (unsigned) __entry->ee_lblk, 1969d8990240SAditya Kali (unsigned long long) __entry->ee_pblk, 1970d8990240SAditya Kali (unsigned short) __entry->ee_len, 1971d8990240SAditya Kali (unsigned) __entry->partial) 1972d8990240SAditya Kali ); 1973d8990240SAditya Kali 1974d8990240SAditya Kali TRACE_EVENT(ext4_ext_rm_idx, 1975d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), 1976d8990240SAditya Kali 1977d8990240SAditya Kali TP_ARGS(inode, pblk), 1978d8990240SAditya Kali 1979d8990240SAditya Kali TP_STRUCT__entry( 1980d8990240SAditya Kali __field( dev_t, dev ) 1981210c0526SAnatol Pomozov __field( ino_t, ino ) 1982d8990240SAditya Kali __field( ext4_fsblk_t, pblk ) 1983d8990240SAditya Kali ), 1984d8990240SAditya Kali 1985d8990240SAditya Kali TP_fast_assign( 1986d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 1987210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 1988d8990240SAditya Kali __entry->pblk = pblk; 1989d8990240SAditya Kali ), 1990d8990240SAditya Kali 1991d8990240SAditya Kali TP_printk("dev %d,%d ino %lu index_pblk %llu", 1992d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 1993d8990240SAditya Kali (unsigned long) __entry->ino, 1994d8990240SAditya Kali (unsigned long long) __entry->pblk) 1995d8990240SAditya Kali ); 1996d8990240SAditya Kali 1997d8990240SAditya Kali TRACE_EVENT(ext4_ext_remove_space, 1998d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), 1999d8990240SAditya Kali 2000d8990240SAditya Kali TP_ARGS(inode, start, depth), 2001d8990240SAditya Kali 2002d8990240SAditya Kali TP_STRUCT__entry( 2003d8990240SAditya Kali __field( dev_t, dev ) 2004210c0526SAnatol Pomozov __field( ino_t, ino ) 2005d8990240SAditya Kali __field( ext4_lblk_t, start ) 2006d8990240SAditya Kali __field( int, depth ) 2007d8990240SAditya Kali ), 2008d8990240SAditya Kali 2009d8990240SAditya Kali TP_fast_assign( 2010d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 2011210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 2012d8990240SAditya Kali __entry->start = start; 2013d8990240SAditya Kali __entry->depth = depth; 2014d8990240SAditya Kali ), 2015d8990240SAditya Kali 2016d8990240SAditya Kali TP_printk("dev %d,%d ino %lu since %u depth %d", 2017d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 2018d8990240SAditya Kali (unsigned long) __entry->ino, 2019d8990240SAditya Kali (unsigned) __entry->start, 2020d8990240SAditya Kali __entry->depth) 2021d8990240SAditya Kali ); 2022d8990240SAditya Kali 2023d8990240SAditya Kali TRACE_EVENT(ext4_ext_remove_space_done, 2024d8990240SAditya Kali TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, 2025d8990240SAditya Kali ext4_lblk_t partial, unsigned short eh_entries), 2026d8990240SAditya Kali 2027d8990240SAditya Kali TP_ARGS(inode, start, depth, partial, eh_entries), 2028d8990240SAditya Kali 2029d8990240SAditya Kali TP_STRUCT__entry( 2030d8990240SAditya Kali __field( dev_t, dev ) 2031210c0526SAnatol Pomozov __field( ino_t, ino ) 2032d8990240SAditya Kali __field( ext4_lblk_t, start ) 2033d8990240SAditya Kali __field( int, depth ) 2034d8990240SAditya Kali __field( ext4_lblk_t, partial ) 2035d8990240SAditya Kali __field( unsigned short, eh_entries ) 2036d8990240SAditya Kali ), 2037d8990240SAditya Kali 2038d8990240SAditya Kali TP_fast_assign( 2039d8990240SAditya Kali __entry->dev = inode->i_sb->s_dev; 2040210c0526SAnatol Pomozov __entry->ino = inode->i_ino; 2041d8990240SAditya Kali __entry->start = start; 2042d8990240SAditya Kali __entry->depth = depth; 2043d8990240SAditya Kali __entry->partial = partial; 2044d8990240SAditya Kali __entry->eh_entries = eh_entries; 2045d8990240SAditya Kali ), 2046d8990240SAditya Kali 2047d8990240SAditya Kali TP_printk("dev %d,%d ino %lu since %u depth %d partial %u " 2048d8990240SAditya Kali "remaining_entries %u", 2049d8990240SAditya Kali MAJOR(__entry->dev), MINOR(__entry->dev), 2050d8990240SAditya Kali (unsigned long) __entry->ino, 2051d8990240SAditya Kali (unsigned) __entry->start, 2052d8990240SAditya Kali __entry->depth, 2053d8990240SAditya Kali (unsigned) __entry->partial, 2054d8990240SAditya Kali (unsigned short) __entry->eh_entries) 2055d8990240SAditya Kali ); 2056d8990240SAditya Kali 20579bffad1eSTheodore Ts'o #endif /* _TRACE_EXT4_H */ 20589bffad1eSTheodore Ts'o 20599bffad1eSTheodore Ts'o /* This part must be outside protection */ 20609bffad1eSTheodore Ts'o #include <trace/define_trace.h> 2061