diff options
author | Michael Rubin <mrubin@google.com> | 2010-10-26 17:21:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 19:52:06 -0400 |
commit | ea941f0e2a8c02ae876cd73deb4e1557248f258c (patch) | |
tree | d2006c10cce4f134dc83f7f5aaa1d0096902cc1a | |
parent | f629d1c9bd0dbc44a6c4f9a4a67d1646c42bfc6f (diff) |
writeback: add nr_dirtied and nr_written to /proc/vmstat
To help developers and applications gain visibility into writeback
behaviour adding two entries to vm_stat_items and /proc/vmstat. This will
allow us to track the "written" and "dirtied" counts.
# grep nr_dirtied /proc/vmstat
nr_dirtied 3747
# grep nr_written /proc/vmstat
nr_written 3618
Signed-off-by: Michael Rubin <mrubin@google.com>
Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/linux/mmzone.h | 2 | ||||
-rw-r--r-- | mm/page-writeback.c | 2 | ||||
-rw-r--r-- | mm/vmstat.c | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 3984c4eb41fd..c3c17fb675ee 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -104,6 +104,8 @@ enum zone_stat_item { | |||
104 | NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ | 104 | NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ |
105 | NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ | 105 | NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ |
106 | NR_SHMEM, /* shmem pages (included tmpfs/GEM pages) */ | 106 | NR_SHMEM, /* shmem pages (included tmpfs/GEM pages) */ |
107 | NR_DIRTIED, /* page dirtyings since bootup */ | ||
108 | NR_WRITTEN, /* page writings since bootup */ | ||
107 | #ifdef CONFIG_NUMA | 109 | #ifdef CONFIG_NUMA |
108 | NUMA_HIT, /* allocated in intended node */ | 110 | NUMA_HIT, /* allocated in intended node */ |
109 | NUMA_MISS, /* allocated in non intended node */ | 111 | NUMA_MISS, /* allocated in non intended node */ |
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 94159819a651..4dd91f7fd39f 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -1121,6 +1121,7 @@ void account_page_dirtied(struct page *page, struct address_space *mapping) | |||
1121 | { | 1121 | { |
1122 | if (mapping_cap_account_dirty(mapping)) { | 1122 | if (mapping_cap_account_dirty(mapping)) { |
1123 | __inc_zone_page_state(page, NR_FILE_DIRTY); | 1123 | __inc_zone_page_state(page, NR_FILE_DIRTY); |
1124 | __inc_zone_page_state(page, NR_DIRTIED); | ||
1124 | __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE); | 1125 | __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE); |
1125 | task_dirty_inc(current); | 1126 | task_dirty_inc(current); |
1126 | task_io_account_write(PAGE_CACHE_SIZE); | 1127 | task_io_account_write(PAGE_CACHE_SIZE); |
@@ -1136,6 +1137,7 @@ EXPORT_SYMBOL(account_page_dirtied); | |||
1136 | void account_page_writeback(struct page *page) | 1137 | void account_page_writeback(struct page *page) |
1137 | { | 1138 | { |
1138 | inc_zone_page_state(page, NR_WRITEBACK); | 1139 | inc_zone_page_state(page, NR_WRITEBACK); |
1140 | inc_zone_page_state(page, NR_WRITTEN); | ||
1139 | } | 1141 | } |
1140 | EXPORT_SYMBOL(account_page_writeback); | 1142 | EXPORT_SYMBOL(account_page_writeback); |
1141 | 1143 | ||
diff --git a/mm/vmstat.c b/mm/vmstat.c index 355a9e669aaa..44e7ac0fdb66 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c | |||
@@ -745,6 +745,9 @@ static const char * const vmstat_text[] = { | |||
745 | "nr_isolated_anon", | 745 | "nr_isolated_anon", |
746 | "nr_isolated_file", | 746 | "nr_isolated_file", |
747 | "nr_shmem", | 747 | "nr_shmem", |
748 | "nr_dirtied", | ||
749 | "nr_written", | ||
750 | |||
748 | #ifdef CONFIG_NUMA | 751 | #ifdef CONFIG_NUMA |
749 | "numa_hit", | 752 | "numa_hit", |
750 | "numa_miss", | 753 | "numa_miss", |