diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-07-07 13:24:08 +1000 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-08-07 18:24:26 +0200 |
commit | 9e094383b60066996fbc3b53891324e5d2ec858d (patch) | |
tree | a3f4af7e60781f62b52dcfddd2032c3bbf933644 | |
parent | 028c2dd184c097809986684f2f0627eea5529fea (diff) | |
download | op-kernel-dev-9e094383b60066996fbc3b53891324e5d2ec858d.zip op-kernel-dev-9e094383b60066996fbc3b53891324e5d2ec858d.tar.gz |
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 0be26ac..bde92e0 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h @@ -148,6 +148,7 @@ DEFINE_WBC_EVENT(wbc_writeback_wait); DEFINE_WBC_EVENT(wbc_balance_dirty_start); DEFINE_WBC_EVENT(wbc_balance_dirty_written); DEFINE_WBC_EVENT(wbc_balance_dirty_wait); +DEFINE_WBC_EVENT(wbc_writepage); #endif /* _TRACE_WRITEBACK_H */ diff --git a/mm/page-writeback.c b/mm/page-writeback.c index d556cd8..3d2111a 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -933,6 +933,7 @@ continue_unlock: if (!clear_page_dirty_for_io(page)) goto continue_unlock; + trace_wbc_writepage(wbc, mapping->backing_dev_info); ret = (*writepage)(page, wbc, data); if (unlikely(ret)) { if (ret == AOP_WRITEPAGE_ACTIVATE) { |