diff options
author | Tejun Heo <tj@kernel.org> | 2013-01-11 16:06:37 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2013-01-14 09:00:36 -0500 |
commit | 9fb0a7da0c528d9bd49b597aa63b1fe2216c7203 (patch) | |
tree | 146b065709010fd41f4a48e8a494b65b965fc0e8 /mm/page-writeback.c | |
parent | 5305cb830834549b9203ad4d009ad5483c5e293f (diff) |
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/page-writeback.c')
-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) | |||
1982 | */ | 1982 | */ |
1983 | void account_page_dirtied(struct page *page, struct address_space *mapping) | 1983 | void account_page_dirtied(struct page *page, struct address_space *mapping) |
1984 | { | 1984 | { |
1985 | trace_writeback_dirty_page(page, mapping); | ||
1986 | |||
1985 | if (mapping_cap_account_dirty(mapping)) { | 1987 | if (mapping_cap_account_dirty(mapping)) { |
1986 | __inc_zone_page_state(page, NR_FILE_DIRTY); | 1988 | __inc_zone_page_state(page, NR_FILE_DIRTY); |
1987 | __inc_zone_page_state(page, NR_DIRTIED); | 1989 | __inc_zone_page_state(page, NR_DIRTIED); |