diff options
author | Tejun Heo <tj@kernel.org> | 2013-01-11 22:06:37 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2013-01-14 15:00:36 +0100 |
commit | 9fb0a7da0c528d9bd49b597aa63b1fe2216c7203 (patch) | |
tree | 146b065709010fd41f4a48e8a494b65b965fc0e8 /mm | |
parent | block: add block_{touch|dirty}_buffer tracepoint (diff) | |
download | linux-9fb0a7da0c528d9bd49b597aa63b1fe2216c7203.tar.xz linux-9fb0a7da0c528d9bd49b597aa63b1fe2216c7203.zip |
writeback: add more tracepoints
Add tracepoints for page dirtying, writeback_single_inode start, inode
dirtying and writeback. For the latter two inode events, a pair of
events are defined to denote start and end of the operations (the
starting one has _start suffix and the one w/o suffix happens after
the operation is complete). These inode ops are FS specific and can
be non-trivial and having enclosing tracepoints is useful for external
tracers.
This is part of tracepoint additions to improve visiblity into
dirtying / writeback operations for io tracer and userland.
v2: writeback_dirty_inode[_start] TPs may be called for files on
pseudo FSes w/ unregistered bdi. Check whether bdi->dev is %NULL
before dereferencing.
v3: buffer dirtying moved to a block TP.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page-writeback.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 0713bfbf0954..3734cefd4de4 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -1982,6 +1982,8 @@ int __set_page_dirty_no_writeback(struct page *page) */ void account_page_dirtied(struct page *page, struct address_space *mapping) { + trace_writeback_dirty_page(page, mapping); + if (mapping_cap_account_dirty(mapping)) { __inc_zone_page_state(page, NR_FILE_DIRTY); __inc_zone_page_state(page, NR_DIRTIED); |