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.
Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html