diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2011-01-23 11:07:47 -0500 |
---|---|---|
committer | Wu Fengguang <fengguang.wu@intel.com> | 2011-10-03 09:08:56 -0400 |
commit | c8e28ce049faa53a470c132893abbc9f2bde9420 (patch) | |
tree | 40553e72f50a613c93f4175d1d28d06abc90db65 /mm | |
parent | 9b13776977d45505469edc6decc93e9e3799afe2 (diff) |
writeback: account per-bdi accumulated dirtied pages
Introduce the BDI_DIRTIED counter. It will be used for estimating the
bdi's dirty bandwidth.
CC: Jan Kara <jack@suse.cz>
CC: Michael Rubin <mrubin@google.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/backing-dev.c | 2 | ||||
-rw-r--r-- | mm/page-writeback.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index a87da524a4a0..fea7e6efd1d7 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
@@ -97,6 +97,7 @@ static int bdi_debug_stats_show(struct seq_file *m, void *v) | |||
97 | "BdiDirtyThresh: %10lu kB\n" | 97 | "BdiDirtyThresh: %10lu kB\n" |
98 | "DirtyThresh: %10lu kB\n" | 98 | "DirtyThresh: %10lu kB\n" |
99 | "BackgroundThresh: %10lu kB\n" | 99 | "BackgroundThresh: %10lu kB\n" |
100 | "BdiDirtied: %10lu kB\n" | ||
100 | "BdiWritten: %10lu kB\n" | 101 | "BdiWritten: %10lu kB\n" |
101 | "BdiWriteBandwidth: %10lu kBps\n" | 102 | "BdiWriteBandwidth: %10lu kBps\n" |
102 | "b_dirty: %10lu\n" | 103 | "b_dirty: %10lu\n" |
@@ -109,6 +110,7 @@ static int bdi_debug_stats_show(struct seq_file *m, void *v) | |||
109 | K(bdi_thresh), | 110 | K(bdi_thresh), |
110 | K(dirty_thresh), | 111 | K(dirty_thresh), |
111 | K(background_thresh), | 112 | K(background_thresh), |
113 | (unsigned long) K(bdi_stat(bdi, BDI_DIRTIED)), | ||
112 | (unsigned long) K(bdi_stat(bdi, BDI_WRITTEN)), | 114 | (unsigned long) K(bdi_stat(bdi, BDI_WRITTEN)), |
113 | (unsigned long) K(bdi->write_bandwidth), | 115 | (unsigned long) K(bdi->write_bandwidth), |
114 | nr_dirty, | 116 | nr_dirty, |
diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 0e309cd1b5b9..0e6dd5c2ed31 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c | |||
@@ -1322,6 +1322,7 @@ void account_page_dirtied(struct page *page, struct address_space *mapping) | |||
1322 | __inc_zone_page_state(page, NR_FILE_DIRTY); | 1322 | __inc_zone_page_state(page, NR_FILE_DIRTY); |
1323 | __inc_zone_page_state(page, NR_DIRTIED); | 1323 | __inc_zone_page_state(page, NR_DIRTIED); |
1324 | __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE); | 1324 | __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE); |
1325 | __inc_bdi_stat(mapping->backing_dev_info, BDI_DIRTIED); | ||
1325 | task_dirty_inc(current); | 1326 | task_dirty_inc(current); |
1326 | task_io_account_write(PAGE_CACHE_SIZE); | 1327 | task_io_account_write(PAGE_CACHE_SIZE); |
1327 | } | 1328 | } |