aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace
diff options
context:
space:
mode:
authorZheng Liu <wenqing.lz@taobao.com>2013-02-18 00:26:51 -0500
committerTheodore Ts'o <tytso@mit.edu>2013-02-18 00:26:51 -0500
commitfdc0212e86ca15c5cfed77088af7cc5eb79ccbc7 (patch)
tree58919d4c7e42dc0edba714c3dcedd88135560c6b /include/trace
parent06b0c886214a223dde7b21cbfc3008fd20a8ce16 (diff)
ext4: add physical block and status member into extent status tree
This commit adds two members in extent_status structure to let it record physical block and extent status. Here es_pblk is used to record both of them because physical block only has 48 bits. So extent status could be stashed into it so that we can save some memory. Now written, unwritten, delayed and hole are defined as status. Due to new member is added into extent status tree, all interfaces need to be adjusted. Signed-off-by: Zheng Liu <wenqing.lz@taobao.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/ext4.h34
1 files changed, 22 insertions, 12 deletions
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index 52c923851959..0ee507ff216d 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -2093,28 +2093,33 @@ TRACE_EVENT(ext4_ext_remove_space_done,
2093); 2093);
2094 2094
2095TRACE_EVENT(ext4_es_insert_extent, 2095TRACE_EVENT(ext4_es_insert_extent,
2096 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len), 2096 TP_PROTO(struct inode *inode, struct extent_status *es),
2097 2097
2098 TP_ARGS(inode, lblk, len), 2098 TP_ARGS(inode, es),
2099 2099
2100 TP_STRUCT__entry( 2100 TP_STRUCT__entry(
2101 __field( dev_t, dev ) 2101 __field( dev_t, dev )
2102 __field( ino_t, ino ) 2102 __field( ino_t, ino )
2103 __field( loff_t, lblk ) 2103 __field( ext4_lblk_t, lblk )
2104 __field( loff_t, len ) 2104 __field( ext4_lblk_t, len )
2105 __field( ext4_fsblk_t, pblk )
2106 __field( unsigned long long, status )
2105 ), 2107 ),
2106 2108
2107 TP_fast_assign( 2109 TP_fast_assign(
2108 __entry->dev = inode->i_sb->s_dev; 2110 __entry->dev = inode->i_sb->s_dev;
2109 __entry->ino = inode->i_ino; 2111 __entry->ino = inode->i_ino;
2110 __entry->lblk = lblk; 2112 __entry->lblk = es->es_lblk;
2111 __entry->len = len; 2113 __entry->len = es->es_len;
2114 __entry->pblk = ext4_es_pblock(es);
2115 __entry->status = ext4_es_status(es);
2112 ), 2116 ),
2113 2117
2114 TP_printk("dev %d,%d ino %lu es [%lld/%lld)", 2118 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %llx",
2115 MAJOR(__entry->dev), MINOR(__entry->dev), 2119 MAJOR(__entry->dev), MINOR(__entry->dev),
2116 (unsigned long) __entry->ino, 2120 (unsigned long) __entry->ino,
2117 __entry->lblk, __entry->len) 2121 __entry->lblk, __entry->len,
2122 __entry->pblk, __entry->status)
2118); 2123);
2119 2124
2120TRACE_EVENT(ext4_es_remove_extent, 2125TRACE_EVENT(ext4_es_remove_extent,
@@ -2175,6 +2180,8 @@ TRACE_EVENT(ext4_es_find_extent_exit,
2175 __field( ino_t, ino ) 2180 __field( ino_t, ino )
2176 __field( ext4_lblk_t, lblk ) 2181 __field( ext4_lblk_t, lblk )
2177 __field( ext4_lblk_t, len ) 2182 __field( ext4_lblk_t, len )
2183 __field( ext4_fsblk_t, pblk )
2184 __field( unsigned long long, status )
2178 __field( ext4_lblk_t, ret ) 2185 __field( ext4_lblk_t, ret )
2179 ), 2186 ),
2180 2187
@@ -2183,13 +2190,16 @@ TRACE_EVENT(ext4_es_find_extent_exit,
2183 __entry->ino = inode->i_ino; 2190 __entry->ino = inode->i_ino;
2184 __entry->lblk = es->es_lblk; 2191 __entry->lblk = es->es_lblk;
2185 __entry->len = es->es_len; 2192 __entry->len = es->es_len;
2193 __entry->pblk = ext4_es_pblock(es);
2194 __entry->status = ext4_es_status(es);
2186 __entry->ret = ret; 2195 __entry->ret = ret;
2187 ), 2196 ),
2188 2197
2189 TP_printk("dev %d,%d ino %lu es [%u/%u) ret %u", 2198 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %llx ret %u",
2190 MAJOR(__entry->dev), MINOR(__entry->dev), 2199 MAJOR(__entry->dev), MINOR(__entry->dev),
2191 (unsigned long) __entry->ino, 2200 (unsigned long) __entry->ino,
2192 __entry->lblk, __entry->len, __entry->ret) 2201 __entry->lblk, __entry->len,
2202 __entry->pblk, __entry->status, __entry->ret)
2193); 2203);
2194 2204
2195#endif /* _TRACE_EXT4_H */ 2205#endif /* _TRACE_EXT4_H */