diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2015-03-17 20:58:08 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2015-04-10 18:08:47 -0400 |
commit | 8ce67cb07dbf6ba35aea1e07e8ad1ea004ced27b (patch) | |
tree | 519839e12edf66b3341cbb0679f3b25bafba6123 /fs/f2fs | |
parent | 3c6c2bebef79999b1827041696dc1881e637e3af (diff) |
f2fs: add some tracepoints to debug volatile and atomic writes
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r-- | fs/f2fs/data.c | 2 | ||||
-rw-r--r-- | fs/f2fs/f2fs.h | 4 | ||||
-rw-r--r-- | fs/f2fs/segment.c | 4 |
3 files changed, 10 insertions, 0 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 486113db97b1..241b98741df9 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c | |||
@@ -1287,9 +1287,11 @@ int do_write_data_page(struct page *page, struct f2fs_io_info *fio) | |||
1287 | need_inplace_update(inode))) { | 1287 | need_inplace_update(inode))) { |
1288 | rewrite_data_page(page, fio); | 1288 | rewrite_data_page(page, fio); |
1289 | set_inode_flag(F2FS_I(inode), FI_UPDATE_WRITE); | 1289 | set_inode_flag(F2FS_I(inode), FI_UPDATE_WRITE); |
1290 | trace_f2fs_do_write_data_page(page, IPU); | ||
1290 | } else { | 1291 | } else { |
1291 | write_data_page(page, &dn, fio); | 1292 | write_data_page(page, &dn, fio); |
1292 | f2fs_update_extent_cache(&dn); | 1293 | f2fs_update_extent_cache(&dn); |
1294 | trace_f2fs_do_write_data_page(page, OPU); | ||
1293 | set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE); | 1295 | set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE); |
1294 | if (page->index == 0) | 1296 | if (page->index == 0) |
1295 | set_inode_flag(F2FS_I(inode), FI_FIRST_BLOCK_WRITTEN); | 1297 | set_inode_flag(F2FS_I(inode), FI_FIRST_BLOCK_WRITTEN); |
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 9e378179ff93..c9818193e15e 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h | |||
@@ -556,6 +556,10 @@ enum page_type { | |||
556 | META, | 556 | META, |
557 | NR_PAGE_TYPE, | 557 | NR_PAGE_TYPE, |
558 | META_FLUSH, | 558 | META_FLUSH, |
559 | INMEM, /* the below types are used by tracepoints only. */ | ||
560 | INMEM_DROP, | ||
561 | IPU, | ||
562 | OPU, | ||
559 | }; | 563 | }; |
560 | 564 | ||
561 | struct f2fs_io_info { | 565 | struct f2fs_io_info { |
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index eafaf728236b..f939660941bb 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c | |||
@@ -205,6 +205,8 @@ retry: | |||
205 | list_add_tail(&new->list, &fi->inmem_pages); | 205 | list_add_tail(&new->list, &fi->inmem_pages); |
206 | inc_page_count(F2FS_I_SB(inode), F2FS_INMEM_PAGES); | 206 | inc_page_count(F2FS_I_SB(inode), F2FS_INMEM_PAGES); |
207 | mutex_unlock(&fi->inmem_lock); | 207 | mutex_unlock(&fi->inmem_lock); |
208 | |||
209 | trace_f2fs_register_inmem_page(page, INMEM); | ||
208 | } | 210 | } |
209 | 211 | ||
210 | void commit_inmem_pages(struct inode *inode, bool abort) | 212 | void commit_inmem_pages(struct inode *inode, bool abort) |
@@ -238,11 +240,13 @@ void commit_inmem_pages(struct inode *inode, bool abort) | |||
238 | f2fs_wait_on_page_writeback(cur->page, DATA); | 240 | f2fs_wait_on_page_writeback(cur->page, DATA); |
239 | if (clear_page_dirty_for_io(cur->page)) | 241 | if (clear_page_dirty_for_io(cur->page)) |
240 | inode_dec_dirty_pages(inode); | 242 | inode_dec_dirty_pages(inode); |
243 | trace_f2fs_commit_inmem_page(cur->page, INMEM); | ||
241 | do_write_data_page(cur->page, &fio); | 244 | do_write_data_page(cur->page, &fio); |
242 | submit_bio = true; | 245 | submit_bio = true; |
243 | } | 246 | } |
244 | f2fs_put_page(cur->page, 1); | 247 | f2fs_put_page(cur->page, 1); |
245 | } else { | 248 | } else { |
249 | trace_f2fs_commit_inmem_page(cur->page, INMEM_DROP); | ||
246 | put_page(cur->page); | 250 | put_page(cur->page); |
247 | } | 251 | } |
248 | radix_tree_delete(&fi->inmem_root, cur->page->index); | 252 | radix_tree_delete(&fi->inmem_root, cur->page->index); |