Re: [PATCH 40/51] writeback: make bdi_start_background_writeback() take bdi_writeback instead of backing_dev_info

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]