Re: [PATCH 40/51] writeback: make bdi_start_background_writeback() take bdi_writeback instead of backing_dev_info
From: Jan Kara
Date: Wed Jul 01 2015 - 03:50:33 EST
On Fri 22-05-15 17:13:54, Tejun Heo wrote:
> bdi_start_background_writeback() currently takes @bdi and kicks the
> root wb (bdi_writeback). In preparation for cgroup writeback support,
> make it take wb instead.
>
> This patch doesn't make any functional difference.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Jens Axboe <axboe@xxxxxxxxx>
> Cc: Jan Kara <jack@xxxxxxx>
> ---
> fs/fs-writeback.c | 12 ++++++------
> include/linux/backing-dev.h | 2 +-
> mm/page-writeback.c | 4 ++--
> 3 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 45baf6c..92aaf64 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -228,23 +228,23 @@ void wb_start_writeback(struct bdi_writeback *wb, long nr_pages,
> }
>
> /**
> - * bdi_start_background_writeback - start background writeback
> - * @bdi: the backing device to write from
> + * wb_start_background_writeback - start background writeback
> + * @wb: bdi_writback to write from
> *
> * Description:
> * This makes sure WB_SYNC_NONE background writeback happens. When
> - * this function returns, it is only guaranteed that for given BDI
> + * this function returns, it is only guaranteed that for given wb
> * some IO is happening if we are over background dirty threshold.
> * Caller need not hold sb s_umount semaphore.
> */
> -void bdi_start_background_writeback(struct backing_dev_info *bdi)
> +void wb_start_background_writeback(struct bdi_writeback *wb)
> {
> /*
> * We just wake up the flusher thread. It will perform background
> * writeback as soon as there is no other work to do.
> */
> - trace_writeback_wake_background(bdi);
> - wb_wakeup(&bdi->wb);
> + trace_writeback_wake_background(wb->bdi);
> + wb_wakeup(wb);
Can we add a memcg id of the wb to the tracepoint please? Because just bdi
needn't be enough when debugging stuff...
Otherwise the patch looks good. You can add:
Reviewed-by: Jan Kara <jack@xxxxxxxx>
Honza
> }
>
> /*
> diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
> index f04956c..9cc11e5 100644
> --- a/include/linux/backing-dev.h
> +++ b/include/linux/backing-dev.h
> @@ -27,7 +27,7 @@ void bdi_unregister(struct backing_dev_info *bdi);
> int __must_check bdi_setup_and_register(struct backing_dev_info *, char *);
> void wb_start_writeback(struct bdi_writeback *wb, long nr_pages,
> bool range_cyclic, enum wb_reason reason);
> -void bdi_start_background_writeback(struct backing_dev_info *bdi);
> +void wb_start_background_writeback(struct bdi_writeback *wb);
> void wb_workfn(struct work_struct *work);
> void wb_wakeup_delayed(struct bdi_writeback *wb);
>
> diff --git a/mm/page-writeback.c b/mm/page-writeback.c
> index e3b5c1d..70cf98d 100644
> --- a/mm/page-writeback.c
> +++ b/mm/page-writeback.c
> @@ -1456,7 +1456,7 @@ static void balance_dirty_pages(struct address_space *mapping,
> }
>
> if (unlikely(!writeback_in_progress(wb)))
> - bdi_start_background_writeback(bdi);
> + wb_start_background_writeback(wb);
>
> if (!strictlimit)
> wb_dirty_limits(wb, dirty_thresh, background_thresh,
> @@ -1588,7 +1588,7 @@ static void balance_dirty_pages(struct address_space *mapping,
> return;
>
> if (nr_reclaimable > background_thresh)
> - bdi_start_background_writeback(bdi);
> + wb_start_background_writeback(wb);
> }
>
> static DEFINE_PER_CPU(int, bdp_ratelimits);
> --
> 2.4.0
>
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/