diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-07-06 23:24:08 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-08-07 12:24:26 -0400 |
commit | 9e094383b60066996fbc3b53891324e5d2ec858d (patch) | |
tree | a3f4af7e60781f62b52dcfddd2032c3bbf933644 | |
parent | 028c2dd184c097809986684f2f0627eea5529fea (diff) |
writeback: Add tracing to write_cache_pages
Add a trace event to the ->writepage loop in write_cache_pages to give
visibility into how the ->writepage call is changing variables within the
writeback control structure. Of most interest is how wbc->nr_to_write changes
from call to call, especially with filesystems that write multiple pages
in ->writepage.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
-rw-r--r-- | include/trace/events/writeback.h | 1 | ||||
-rw-r--r-- | mm/page-writeback.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index 0be26acae064..bde92e07fa4f 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h | |||
@@ -148,6 +148,7 @@ DEFINE_WBC_EVENT(wbc_writeback_wait); | |||
148 | DEFINE_WBC_EVENT(wbc_balance_dirty_start); | 148 | DEFINE_WBC_EVENT(wbc_balance_dirty_start); |
149 | DEFINE_WBC_EVENT(wbc_balance_dirty_written); | 149 | DEFINE_WBC_EVENT(wbc_balance_dirty_written); |
150 | DEFINE_WBC_EVENT(wbc_balance_dirty_wait); | 150 | DEFINE_WBC_EVENT(wbc_balance_dirty_wait); |
151 | DEFINE_WBC_EVENT(wbc_writepage); | ||
151 | 152 | ||
152 | #endif /* _TRACE_WRITEBACK_H */ | 153 | #endif /* _TRACE_WRITEBACK_H */ |
153 | 154 | ||
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index d556cd829af6..3d2111a22236 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -933,6 +933,7 @@ continue_unlock: | |||
933 | if (!clear_page_dirty_for_io(page)) | 933 | if (!clear_page_dirty_for_io(page)) |
934 | goto continue_unlock; | 934 | goto continue_unlock; |
935 | 935 | ||
936 | trace_wbc_writepage(wbc, mapping->backing_dev_info); | ||
936 | ret = (*writepage)(page, wbc, data); | 937 | ret = (*writepage)(page, wbc, data); |
937 | if (unlikely(ret)) { | 938 | if (unlikely(ret)) { |
938 | if (ret == AOP_WRITEPAGE_ACTIVATE) { | 939 | if (ret == AOP_WRITEPAGE_ACTIVATE) { |