2009-11-27 11:36:36

by Wu Fengguang

[permalink] [raw]
Subject: [PATCH 4/6] writeback: remove unused nonblocking and congestion checks (xfs)

No one is calling wb_writeback and write_cache_pages with
wbc.nonblocking=1 any more. And lumpy pageout will want to do
nonblocking writeback without the congestion wait.

CC: Dave Chinner <[email protected]>
CC: Christoph Hellwig <[email protected]>
Signed-off-by: Wu Fengguang <[email protected]>
---
fs/xfs/linux-2.6/xfs_aops.c | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)

--- linux.orig/fs/xfs/linux-2.6/xfs_aops.c 2009-11-19 16:00:51.000000000 +0800
+++ linux/fs/xfs/linux-2.6/xfs_aops.c 2009-11-19 16:04:33.000000000 +0800
@@ -904,16 +904,9 @@ xfs_convert_page(

if (startio) {
if (count) {
- struct backing_dev_info *bdi;
-
- bdi = inode->i_mapping->backing_dev_info;
wbc->nr_to_write--;
- if (bdi_write_congested(bdi)) {
- wbc->encountered_congestion = 1;
- done = 1;
- } else if (wbc->nr_to_write <= 0) {
+ if (wbc->nr_to_write <= 0)
done = 1;
- }
}
xfs_start_page_writeback(page, !page_dirty, count);
}


2009-11-27 11:40:18

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 4/6] writeback: remove unused nonblocking and congestion checks (xfs)

On Fri, Nov 27, 2009 at 06:59:12PM +0800, Wu Fengguang wrote:
> No one is calling wb_writeback and write_cache_pages with
> wbc.nonblocking=1 any more. And lumpy pageout will want to do
> nonblocking writeback without the congestion wait.

Please, just fold this into one big patch removing the flag. Splitting
this into multiple patches is just a real pain in the neck.

2009-11-27 12:05:55

by Wu Fengguang

[permalink] [raw]
Subject: Re: [PATCH 4/6] writeback: remove unused nonblocking and congestion checks (xfs)

On Fri, Nov 27, 2009 at 06:40:14AM -0500, Christoph Hellwig wrote:
> On Fri, Nov 27, 2009 at 06:59:12PM +0800, Wu Fengguang wrote:
> > No one is calling wb_writeback and write_cache_pages with
> > wbc.nonblocking=1 any more. And lumpy pageout will want to do
> > nonblocking writeback without the congestion wait.
>
> Please, just fold this into one big patch removing the flag. Splitting
> this into multiple patches is just a real pain in the neck.

Sure. This is the folded version for the first 4 patches.

Thanks,
Fengguang
---
writeback: remove unused nonblocking and congestion checks

- no one is calling wb_writeback and write_cache_pages with
wbc.nonblocking=1 any more
- lumpy pageout will want to do nonblocking writeback without the
congestion wait

So remove the congestion checks as suggested by Chris.

CC: Chris Mason <[email protected]>
CC: Jens Axboe <[email protected]>
CC: Christoph Hellwig <[email protected]>
CC: Dave Chinner <[email protected]>
CC: Evgeniy Polyakov <[email protected]>
Signed-off-by: Wu Fengguang <[email protected]>
---
drivers/staging/pohmelfs/inode.c | 10 ----------
fs/fs-writeback.c | 9 ---------
fs/xfs/linux-2.6/xfs_aops.c | 9 +--------
mm/page-writeback.c | 12 ------------
4 files changed, 1 insertion(+), 39 deletions(-)

--- linux.orig/fs/fs-writeback.c 2009-11-27 19:46:05.000000000 +0800
+++ linux/fs/fs-writeback.c 2009-11-27 19:46:10.000000000 +0800
@@ -657,14 +657,6 @@ static void writeback_inodes_wb(struct b
continue;
}

- if (wbc->nonblocking && bdi_write_congested(wb->bdi)) {
- wbc->encountered_congestion = 1;
- if (!is_blkdev_sb)
- break; /* Skip a congested fs */
- requeue_io(inode);
- continue; /* Skip a congested blockdev */
- }
-
/*
* Was this inode dirtied after sync_sb_inodes was called?
* This keeps sync from extra jobs and livelock.
@@ -787,7 +779,6 @@ static long wb_writeback(struct bdi_writ
break;

wbc.more_io = 0;
- wbc.encountered_congestion = 0;
wbc.nr_to_write = MAX_WRITEBACK_PAGES;
wbc.pages_skipped = 0;
writeback_inodes_wb(wb, &wbc);
--- linux.orig/drivers/staging/pohmelfs/inode.c 2009-11-27 19:06:00.000000000 +0800
+++ linux/drivers/staging/pohmelfs/inode.c 2009-11-27 19:46:31.000000000 +0800
@@ -143,7 +143,6 @@ static int pohmelfs_writepages(struct ad
struct inode *inode = mapping->host;
struct pohmelfs_inode *pi = POHMELFS_I(inode);
struct pohmelfs_sb *psb = POHMELFS_SB(inode->i_sb);
- struct backing_dev_info *bdi = mapping->backing_dev_info;
int err = 0;
int done = 0;
int nr_pages;
@@ -152,11 +151,6 @@ static int pohmelfs_writepages(struct ad
int scanned = 0;
int range_whole = 0;

- if (wbc->nonblocking && bdi_write_congested(bdi)) {
- wbc->encountered_congestion = 1;
- return 0;
- }
-
if (wbc->range_cyclic) {
index = mapping->writeback_index; /* Start from prev offset */
end = -1;
@@ -248,10 +242,6 @@ retry:

if (wbc->nr_to_write <= 0)
done = 1;
- if (wbc->nonblocking && bdi_write_congested(bdi)) {
- wbc->encountered_congestion = 1;
- done = 1;
- }

continue;
out_continue:
--- linux.orig/fs/xfs/linux-2.6/xfs_aops.c 2009-11-27 19:06:00.000000000 +0800
+++ linux/fs/xfs/linux-2.6/xfs_aops.c 2009-11-27 19:46:40.000000000 +0800
@@ -904,16 +904,9 @@ xfs_convert_page(

if (startio) {
if (count) {
- struct backing_dev_info *bdi;
-
- bdi = inode->i_mapping->backing_dev_info;
wbc->nr_to_write--;
- if (bdi_write_congested(bdi)) {
- wbc->encountered_congestion = 1;
- done = 1;
- } else if (wbc->nr_to_write <= 0) {
+ if (wbc->nr_to_write <= 0)
done = 1;
- }
}
xfs_start_page_writeback(page, !page_dirty, count);
}
--- linux.orig/mm/page-writeback.c 2009-11-27 19:46:06.000000000 +0800
+++ linux/mm/page-writeback.c 2009-11-27 19:46:20.000000000 +0800
@@ -821,7 +821,6 @@ int write_cache_pages(struct address_spa
struct writeback_control *wbc, writepage_t writepage,
void *data)
{
- struct backing_dev_info *bdi = mapping->backing_dev_info;
int ret = 0;
int done = 0;
struct pagevec pvec;
@@ -834,11 +833,6 @@ int write_cache_pages(struct address_spa
int range_whole = 0;
long nr_to_write = wbc->nr_to_write;

- if (wbc->nonblocking && bdi_write_congested(bdi)) {
- wbc->encountered_congestion = 1;
- return 0;
- }
-
pagevec_init(&pvec, 0);
if (wbc->range_cyclic) {
writeback_index = mapping->writeback_index; /* prev offset */
@@ -957,12 +951,6 @@ continue_unlock:
break;
}
}
-
- if (wbc->nonblocking && bdi_write_congested(bdi)) {
- wbc->encountered_congestion = 1;
- done = 1;
- break;
- }
}
pagevec_release(&pvec);
cond_resched();

2009-11-27 12:08:54

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 4/6] writeback: remove unused nonblocking and congestion checks (xfs)

On Fri, Nov 27, 2009 at 07:50:29PM +0800, Wu Fengguang wrote:
> writeback: remove unused nonblocking and congestion checks
>
> - no one is calling wb_writeback and write_cache_pages with
> wbc.nonblocking=1 any more
> - lumpy pageout will want to do nonblocking writeback without the
> congestion wait
>
> So remove the congestion checks as suggested by Chris.

Looks good to me, thanks.