On 09/22/2016 07:34 AM, Jan Kara wrote:
On Tue 20-09-16 16:57:47, Josef Bacik wrote:
These are counters that constantly go up in order to do bandwidth calculations.
It isn't important what the units are in, as long as they are consistent between
the two of them, so convert them to count bytes written/dirtied, and allow the
metadata accounting stuff to change the counters as well.
Signed-off-by: Josef Bacik <jbacik@xxxxxx>
---
fs/fuse/file.c | 4 ++--
include/linux/backing-dev-defs.h | 4 ++--
include/linux/backing-dev.h | 2 +-
mm/backing-dev.c | 8 ++++----
mm/page-writeback.c | 26 ++++++++++++++++----------
5 files changed, 25 insertions(+), 19 deletions(-)
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index f394aff..3f5991e 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1466,7 +1466,7 @@ static void fuse_writepage_finish(struct fuse_conn *fc, struct fuse_req *req)
for (i = 0; i < req->num_pages; i++) {
dec_wb_stat(&bdi->wb, WB_WRITEBACK);
dec_node_page_state(req->pages[i], NR_WRITEBACK_TEMP);
- wb_writeout_inc(&bdi->wb);
+ wb_writeout_inc(&bdi->wb, PAGE_SIZE);
Nitpick: Rename this to wb_writeout_add()? You have to change all the call
sites anyway and it is more consistent with other naming.
@@ -2523,6 +2523,7 @@ void account_metadata_dirtied(struct page *page, struct backing_dev_info *bdi,
__mod_node_page_state(page_pgdat(page), NR_METADATA_DIRTY_BYTES,
bytes);
__add_wb_stat(&bdi->wb, WB_METADATA_DIRTY_BYTES, bytes);
+ __add_wb_stat(&bdi->wb, WB_DIRTIED_BYTES, bytes);
current->nr_dirtied++;
task_io_account_write(bytes);
this_cpu_inc(bdp_ratelimits);
@@ -2593,6 +2594,7 @@ void account_metadata_end_writeback(struct page *page,
__add_wb_stat(&bdi->wb, WB_METADATA_WRITEBACK_BYTES, -bytes);
__mod_node_page_state(page_pgdat(page), NR_METADATA_WRITEBACK_BYTES,
-bytes);
+ __add_wb_stat(&bdi->wb, WB_WRITTEN_BYTES, bytes);
local_irq_restore(flags);
}
EXPORT_SYMBOL(account_metadata_end_writeback);
It seems it would make sense to move this patch to be second in the
series so that above two functions could do the right thing from the
beginning.
Yup that's fair, I'll move this around and rename wb_writeout_inc. Thanks,
Josef
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html