aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-04 20:19:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-04 20:19:27 -0400
commitae67d9a888a000a9df43de10eb9950075e93508c (patch)
tree4251a8b5fb19fb294b917bd36b4d0b92d2e5c51b /include/trace
parent71c7356f864dc41e4bd6b884596a422f8954afe0 (diff)
parentad4eec613536dc7e5ea0c6e59849e6edca634d8b (diff)
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o: "New features for 3.12: - Added aggressive extent caching using the extent status tree. This can actually decrease memory usage in read-mostly workloads since the information is much more compactly stored in the extent status tree than if we had to keep the extent tree metadata blocks in the buffer cache. This also improves Asynchronous I/O since it is it makes much less likely that we need to do metadata I/O to lookup the extent tree information. - Improve the recovery after corrupted allocation bitmaps are found when running in errors=ignore mode. Also fixed some writeback vs truncate races when using a blocksize less than the page size" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits) ext4: allow specifying external journal by pathname mount option ext4: mark group corrupt on group descriptor checksum ext4: mark block group as corrupt on inode bitmap error ext4: mark block group as corrupt on block bitmap error ext4: fix type declaration of ext4_validate_block_bitmap ext4: error out if verifying the block bitmap fails jbd2: Fix endian mixing problems in the checksumming code ext4: isolate ext4_extents.h file ext4: Fix misspellings using 'codespell' tool ext4: convert write_begin methods to stable_page_writes semantics ext4: fix use of potentially uninitialized variables in debugging code ext4: fix lost truncate due to race with writeback ext4: simplify truncation code in ext4_setattr() ext4: fix ext4_writepages() in presence of truncate ext4: move test whether extent to map can be extended to one place ext4: fix warning in ext4_da_update_reserve_space() quota: provide interface for readding allocated space into reserved space ext4: avoid reusing recently deleted inodes in no journal mode ext4: allocate delayed allocation blocks before rename ext4: start handle at least possible moment when renaming files ...
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/ext4.h29
1 files changed, 20 insertions, 9 deletions
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index 2068db241f22..197d3125df2a 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -14,7 +14,6 @@ struct ext4_prealloc_space;
14struct ext4_inode_info; 14struct ext4_inode_info;
15struct mpage_da_data; 15struct mpage_da_data;
16struct ext4_map_blocks; 16struct ext4_map_blocks;
17struct ext4_extent;
18struct extent_status; 17struct extent_status;
19 18
20#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) 19#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode))
@@ -64,10 +63,10 @@ struct extent_status;
64 { EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER, "LAST_CLUSTER" }) 63 { EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER, "LAST_CLUSTER" })
65 64
66#define show_extent_status(status) __print_flags(status, "", \ 65#define show_extent_status(status) __print_flags(status, "", \
67 { (1 << 3), "W" }, \ 66 { EXTENT_STATUS_WRITTEN, "W" }, \
68 { (1 << 2), "U" }, \ 67 { EXTENT_STATUS_UNWRITTEN, "U" }, \
69 { (1 << 1), "D" }, \ 68 { EXTENT_STATUS_DELAYED, "D" }, \
70 { (1 << 0), "H" }) 69 { EXTENT_STATUS_HOLE, "H" })
71 70
72 71
73TRACE_EVENT(ext4_free_inode, 72TRACE_EVENT(ext4_free_inode,
@@ -2192,7 +2191,7 @@ TRACE_EVENT(ext4_ext_remove_space_done,
2192 (unsigned short) __entry->eh_entries) 2191 (unsigned short) __entry->eh_entries)
2193); 2192);
2194 2193
2195TRACE_EVENT(ext4_es_insert_extent, 2194DECLARE_EVENT_CLASS(ext4__es_extent,
2196 TP_PROTO(struct inode *inode, struct extent_status *es), 2195 TP_PROTO(struct inode *inode, struct extent_status *es),
2197 2196
2198 TP_ARGS(inode, es), 2197 TP_ARGS(inode, es),
@@ -2212,7 +2211,7 @@ TRACE_EVENT(ext4_es_insert_extent,
2212 __entry->lblk = es->es_lblk; 2211 __entry->lblk = es->es_lblk;
2213 __entry->len = es->es_len; 2212 __entry->len = es->es_len;
2214 __entry->pblk = ext4_es_pblock(es); 2213 __entry->pblk = ext4_es_pblock(es);
2215 __entry->status = ext4_es_status(es) >> 60; 2214 __entry->status = ext4_es_status(es);
2216 ), 2215 ),
2217 2216
2218 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", 2217 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
@@ -2222,6 +2221,18 @@ TRACE_EVENT(ext4_es_insert_extent,
2222 __entry->pblk, show_extent_status(__entry->status)) 2221 __entry->pblk, show_extent_status(__entry->status))
2223); 2222);
2224 2223
2224DEFINE_EVENT(ext4__es_extent, ext4_es_insert_extent,
2225 TP_PROTO(struct inode *inode, struct extent_status *es),
2226
2227 TP_ARGS(inode, es)
2228);
2229
2230DEFINE_EVENT(ext4__es_extent, ext4_es_cache_extent,
2231 TP_PROTO(struct inode *inode, struct extent_status *es),
2232
2233 TP_ARGS(inode, es)
2234);
2235
2225TRACE_EVENT(ext4_es_remove_extent, 2236TRACE_EVENT(ext4_es_remove_extent,
2226 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len), 2237 TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len),
2227 2238
@@ -2289,7 +2300,7 @@ TRACE_EVENT(ext4_es_find_delayed_extent_range_exit,
2289 __entry->lblk = es->es_lblk; 2300 __entry->lblk = es->es_lblk;
2290 __entry->len = es->es_len; 2301 __entry->len = es->es_len;
2291 __entry->pblk = ext4_es_pblock(es); 2302 __entry->pblk = ext4_es_pblock(es);
2292 __entry->status = ext4_es_status(es) >> 60; 2303 __entry->status = ext4_es_status(es);
2293 ), 2304 ),
2294 2305
2295 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", 2306 TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s",
@@ -2343,7 +2354,7 @@ TRACE_EVENT(ext4_es_lookup_extent_exit,
2343 __entry->lblk = es->es_lblk; 2354 __entry->lblk = es->es_lblk;
2344 __entry->len = es->es_len; 2355 __entry->len = es->es_len;
2345 __entry->pblk = ext4_es_pblock(es); 2356 __entry->pblk = ext4_es_pblock(es);
2346 __entry->status = ext4_es_status(es) >> 60; 2357 __entry->status = ext4_es_status(es);
2347 __entry->found = found; 2358 __entry->found = found;
2348 ), 2359 ),
2349 2360