linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH 06/12] writeback: remove unused nonblocking and congestion checks (gfs2)
       [not found] ` <20091118082846.170413359@intel.com>
@ 2009-11-18  9:59   ` Steven Whitehouse
  2009-11-18 10:09     ` Wu Fengguang
  0 siblings, 1 reply; 18+ messages in thread
From: Steven Whitehouse @ 2009-11-18  9:59 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, Jens Axboe, linux-fsdevel, LKML

Hi,

That looks ok to me, modulo the warnings below. The only "non-obvious"
thing in this area which the GFS2 writepage[s] code relies upon is the
assumption that if we have a ->writepages() then ->writepage() will
never be called from a context which requires the fs to actually do a
write (i.e. the fs can refuse this if required). That is also only the
case for journaled data files - normal writes don't have that
requirement.

 CC [M]  fs/gfs2/aops.o
fs/gfs2/aops.c: In function ‘gfs2_write_jdata_pagevec’:
fs/gfs2/aops.c:272: warning: unused variable ‘bdi’
fs/gfs2/aops.c: In function ‘gfs2_write_cache_jdata’:
fs/gfs2/aops.c:336: warning: unused variable ‘bdi’

Once the warnings are fixed:

Acked-by: Steven Whitehouse <swhiteho@redhat.com>

Do you want me to add this patch into my tree, or were you planning to
submit via a different tree?

Steve.

On Wed, 2009-11-18 at 16:26 +0800, Wu Fengguang wrote:
> plain text document attachment
> (writeback-remove-congested-checks-linux_fs_gfs2_aops.patch)
> 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: Steven Whitehouse <swhiteho@redhat.com>
> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> ---
>  fs/gfs2/aops.c |   10 ----------
>  1 file changed, 10 deletions(-)
> 
> --- linux.orig/fs/gfs2/aops.c	2009-11-06 09:22:35.000000000 +0800
> +++ linux/fs/gfs2/aops.c	2009-11-06 09:52:15.000000000 +0800
> @@ -313,11 +313,6 @@ static int gfs2_write_jdata_pagevec(stru
>  
>  		if (ret || (--(wbc->nr_to_write) <= 0))
>  			ret = 1;
> -		if (wbc->nonblocking && bdi_write_congested(bdi)) {
> -			wbc->encountered_congestion = 1;
> -			ret = 1;
> -		}
> -
>  	}
>  	gfs2_trans_end(sdp);
>  	return ret;
> @@ -348,11 +343,6 @@ static int gfs2_write_cache_jdata(struct
>  	int scanned = 0;
>  	int range_whole = 0;
>  
> -	if (wbc->nonblocking && bdi_write_congested(bdi)) {
> -		wbc->encountered_congestion = 1;
> -		return 0;
> -	}
> -
>  	pagevec_init(&pvec, 0);
>  	if (wbc->range_cyclic) {
>  		index = mapping->writeback_index; /* Start from prev offset */
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 06/12] writeback: remove unused nonblocking and congestion checks (gfs2)
  2009-11-18  9:59   ` [PATCH 06/12] writeback: remove unused nonblocking and congestion checks (gfs2) Steven Whitehouse
@ 2009-11-18 10:09     ` Wu Fengguang
  2009-11-18 11:13       ` Steven Whitehouse
  0 siblings, 1 reply; 18+ messages in thread
From: Wu Fengguang @ 2009-11-18 10:09 UTC (permalink / raw)
  To: Steven Whitehouse
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org, LKML

Hi Steven,

On Wed, Nov 18, 2009 at 05:59:46PM +0800, Steven Whitehouse wrote:
> Hi,
> 
> That looks ok to me, modulo the warnings below. The only "non-obvious"
> thing in this area which the GFS2 writepage[s] code relies upon is the
> assumption that if we have a ->writepages() then ->writepage() will
> never be called from a context which requires the fs to actually do a
> write (i.e. the fs can refuse this if required). That is also only the
> case for journaled data files - normal writes don't have that
> requirement.

Thank you for the tips. I don't think pageout() or migration
writeout() has that hard expectation for ->writepage() :)

>  CC [M]  fs/gfs2/aops.o
> fs/gfs2/aops.c: In function ‘gfs2_write_jdata_pagevec’:
> fs/gfs2/aops.c:272: warning: unused variable ‘bdi’
> fs/gfs2/aops.c: In function ‘gfs2_write_cache_jdata’:
> fs/gfs2/aops.c:336: warning: unused variable ‘bdi’

Ah sorry!

> Once the warnings are fixed:
> 
> Acked-by: Steven Whitehouse <swhiteho@redhat.com>
> 
> Do you want me to add this patch into my tree, or were you planning to
> submit via a different tree?

Thanks, can you pull the updated patch directly to your tree?

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

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.

Acked-by: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
 fs/gfs2/aops.c |   12 ------------
 1 file changed, 12 deletions(-)

--- linux.orig/fs/gfs2/aops.c	2009-11-18 16:39:32.000000000 +0800
+++ linux/fs/gfs2/aops.c	2009-11-18 18:01:14.000000000 +0800
@@ -269,7 +269,6 @@ static int gfs2_write_jdata_pagevec(stru
 	pgoff_t end_index = i_size >> PAGE_CACHE_SHIFT;
 	unsigned offset = i_size & (PAGE_CACHE_SIZE-1);
 	unsigned nrblocks = nr_pages * (PAGE_CACHE_SIZE/inode->i_sb->s_blocksize);
-	struct backing_dev_info *bdi = mapping->backing_dev_info;
 	int i;
 	int ret;
 
@@ -313,11 +312,6 @@ static int gfs2_write_jdata_pagevec(stru
 
 		if (ret || (--(wbc->nr_to_write) <= 0))
 			ret = 1;
-		if (wbc->nonblocking && bdi_write_congested(bdi)) {
-			wbc->encountered_congestion = 1;
-			ret = 1;
-		}
-
 	}
 	gfs2_trans_end(sdp);
 	return ret;
@@ -338,7 +332,6 @@ static int gfs2_write_jdata_pagevec(stru
 static int gfs2_write_cache_jdata(struct address_space *mapping,
 				  struct writeback_control *wbc)
 {
-	struct backing_dev_info *bdi = mapping->backing_dev_info;
 	int ret = 0;
 	int done = 0;
 	struct pagevec pvec;
@@ -348,11 +341,6 @@ static int gfs2_write_cache_jdata(struct
 	int scanned = 0;
 	int range_whole = 0;
 
-	if (wbc->nonblocking && bdi_write_congested(bdi)) {
-		wbc->encountered_congestion = 1;
-		return 0;
-	}
-
 	pagevec_init(&pvec, 0);
 	if (wbc->range_cyclic) {
 		index = mapping->writeback_index; /* Start from prev offset */

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 12/12] bdi: use bdi_stat_sum() for more accurate debugfs stats
       [not found] ` <20091118082846.921451469@intel.com>
@ 2009-11-18 10:38   ` Peter Zijlstra
  2009-11-19  7:59     ` Wu Fengguang
  0 siblings, 1 reply; 18+ messages in thread
From: Peter Zijlstra @ 2009-11-18 10:38 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, linux-fsdevel

On Wed, 2009-11-18 at 16:27 +0800, Wu Fengguang wrote:
> plain text document attachment (bdi-debug-dump-sum.patch)
> CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> ---
>  mm/backing-dev.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> --- linux.orig/mm/backing-dev.c	2009-11-18 16:25:28.000000000 +0800
> +++ linux/mm/backing-dev.c	2009-11-18 16:26:10.000000000 +0800
> @@ -104,8 +104,8 @@ static int bdi_debug_stats_show(struct s
>  		   "wb_mask:          %8lx\n"
>  		   "wb_list:          %8u\n"
>  		   "wb_cnt:           %8u\n",
> -		   (unsigned long) K(bdi_stat(bdi, BDI_WRITEBACK)),
> -		   (unsigned long) K(bdi_stat(bdi, BDI_RECLAIMABLE)),
> +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_WRITEBACK)),
> +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_RECLAIMABLE)),
>  		   K(bdi_thresh), K(dirty_thresh),
>  		   K(background_thresh), nr_wb, nr_dirty, nr_io, nr_more_io,
>  		   !list_empty(&bdi->bdi_list), bdi->state, bdi->wb_mask,
> 

Is this really important? This patch is basically a local DoS for large
machines.

Imagine someone doing:

while :; do cat /debug/bdi/*/stats; done

on a 512 cpu box.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 06/12] writeback: remove unused nonblocking and congestion checks (gfs2)
  2009-11-18 10:09     ` Wu Fengguang
@ 2009-11-18 11:13       ` Steven Whitehouse
  0 siblings, 0 replies; 18+ messages in thread
From: Steven Whitehouse @ 2009-11-18 11:13 UTC (permalink / raw)
  To: Wu Fengguang
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org, LKML

Hi,

On Wed, 2009-11-18 at 18:09 +0800, Wu Fengguang wrote:
> Hi Steven,
> 
> On Wed, Nov 18, 2009 at 05:59:46PM +0800, Steven Whitehouse wrote:
> > Hi,
> > 
> > That looks ok to me, modulo the warnings below. The only "non-obvious"
> > thing in this area which the GFS2 writepage[s] code relies upon is the
> > assumption that if we have a ->writepages() then ->writepage() will
> > never be called from a context which requires the fs to actually do a
> > write (i.e. the fs can refuse this if required). That is also only the
> > case for journaled data files - normal writes don't have that
> > requirement.
> 
> Thank you for the tips. I don't think pageout() or migration
> writeout() has that hard expectation for ->writepage() :)
> 
> >  CC [M]  fs/gfs2/aops.o
> > fs/gfs2/aops.c: In function ‘gfs2_write_jdata_pagevec’:
> > fs/gfs2/aops.c:272: warning: unused variable ‘bdi’
> > fs/gfs2/aops.c: In function ‘gfs2_write_cache_jdata’:
> > fs/gfs2/aops.c:336: warning: unused variable ‘bdi’
> 
> Ah sorry!
> 
> > Once the warnings are fixed:
> > 
> > Acked-by: Steven Whitehouse <swhiteho@redhat.com>
> > 
> > Do you want me to add this patch into my tree, or were you planning to
> > submit via a different tree?
> 
> Thanks, can you pull the updated patch directly to your tree?
> 
Yes, its in my -nmw tree now. Thanks,

Steve.


--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 07/12] writeback: remove unused nonblocking and congestion checks (xfs)
       [not found] ` <20091118082846.279046849@intel.com>
@ 2009-11-18 21:27   ` Dave Chinner
  2009-11-19  8:05     ` Wu Fengguang
  0 siblings, 1 reply; 18+ messages in thread
From: Dave Chinner @ 2009-11-18 21:27 UTC (permalink / raw)
  To: Wu Fengguang
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel, Christoph Hellwig, LKML

On Wed, Nov 18, 2009 at 04:26:55PM +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.

....

> --- linux.orig/fs/xfs/linux-2.6/xfs_aops.c	2009-11-06 09:22:35.000000000 +0800
> +++ linux/fs/xfs/linux-2.6/xfs_aops.c	2009-11-06 09:52:21.000000000 +0800
> @@ -908,12 +908,8 @@ xfs_convert_page(
>  
>  			bdi = inode->i_mapping->backing_dev_info;
>  			wbc->nr_to_write--;
> -			if (bdi_write_congested(bdi)) {
> -				wbc->encountered_congestion = 1;

bdi is unused now, so can be removed as well. Otherwise looks fine.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 12/12] bdi: use bdi_stat_sum() for more accurate debugfs stats
  2009-11-18 10:38   ` [PATCH 12/12] bdi: use bdi_stat_sum() for more accurate debugfs stats Peter Zijlstra
@ 2009-11-19  7:59     ` Wu Fengguang
  2009-11-19  8:12       ` Peter Zijlstra
  0 siblings, 1 reply; 18+ messages in thread
From: Wu Fengguang @ 2009-11-19  7:59 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Andrew Morton, linux-fsdevel@vger.kernel.org

On Wed, Nov 18, 2009 at 06:38:49PM +0800, Peter Zijlstra wrote:
> On Wed, 2009-11-18 at 16:27 +0800, Wu Fengguang wrote:
> > plain text document attachment (bdi-debug-dump-sum.patch)
> > CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> > ---
> >  mm/backing-dev.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > --- linux.orig/mm/backing-dev.c	2009-11-18 16:25:28.000000000 +0800
> > +++ linux/mm/backing-dev.c	2009-11-18 16:26:10.000000000 +0800
> > @@ -104,8 +104,8 @@ static int bdi_debug_stats_show(struct s
> >  		   "wb_mask:          %8lx\n"
> >  		   "wb_list:          %8u\n"
> >  		   "wb_cnt:           %8u\n",
> > -		   (unsigned long) K(bdi_stat(bdi, BDI_WRITEBACK)),
> > -		   (unsigned long) K(bdi_stat(bdi, BDI_RECLAIMABLE)),
> > +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_WRITEBACK)),
> > +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_RECLAIMABLE)),
> >  		   K(bdi_thresh), K(dirty_thresh),
> >  		   K(background_thresh), nr_wb, nr_dirty, nr_io, nr_more_io,
> >  		   !list_empty(&bdi->bdi_list), bdi->state, bdi->wb_mask,
> > 
> 
> Is this really important? This patch is basically a local DoS for large
> machines.

I did this patch after seeing inaccurate exported numbers,
it may be confusing..

> Imagine someone doing:
> 
> while :; do cat /debug/bdi/*/stats; done
> 
> on a 512 cpu box.

Yes there will be overheads. However it's always possible to
create local DoS with some other kind of busy loop?

Thanks,
Fengguang


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 07/12] writeback: remove unused nonblocking and congestion checks (xfs)
  2009-11-18 21:27   ` [PATCH 07/12] writeback: remove unused nonblocking and congestion checks (xfs) Dave Chinner
@ 2009-11-19  8:05     ` Wu Fengguang
  2009-11-20  7:24       ` Dave Chinner
  0 siblings, 1 reply; 18+ messages in thread
From: Wu Fengguang @ 2009-11-19  8:05 UTC (permalink / raw)
  To: Dave Chinner
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org,
	Christoph Hellwig, LKML

On Thu, Nov 19, 2009 at 05:27:55AM +0800, Dave Chinner wrote:
> On Wed, Nov 18, 2009 at 04:26:55PM +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.
> 
> ....
> 
> > --- linux.orig/fs/xfs/linux-2.6/xfs_aops.c	2009-11-06 09:22:35.000000000 +0800
> > +++ linux/fs/xfs/linux-2.6/xfs_aops.c	2009-11-06 09:52:21.000000000 +0800
> > @@ -908,12 +908,8 @@ xfs_convert_page(
> >  
> >  			bdi = inode->i_mapping->backing_dev_info;
> >  			wbc->nr_to_write--;
> > -			if (bdi_write_congested(bdi)) {
> > -				wbc->encountered_congestion = 1;
> 
> bdi is unused now, so can be removed as well. Otherwise looks fine.

Thanks, here is the updated patch.

---
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 <david@fromorbit.com> 
CC: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
 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);
 	}

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 04/12] writeback: remove unused nonblocking and congestion checks (afs)
       [not found] ` <20091118082845.936295466@intel.com>
@ 2009-11-19  8:09   ` Wu Fengguang
  2009-11-19 16:51   ` David Howells
  1 sibling, 0 replies; 18+ messages in thread
From: Wu Fengguang @ 2009-11-19  8:09 UTC (permalink / raw)
  To: David Howells, Andrew Morton, Jens Axboe
  Cc: linux-fsdevel@vger.kernel.org, LKML

Hi David,

Will you pick up this updated patch? It also removes the unused bdi.

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

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: David Howells <dhowells@redhat.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
 fs/afs/write.c |   19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

--- linux.orig/fs/afs/write.c	2009-11-18 16:39:33.000000000 +0800
+++ linux/fs/afs/write.c	2009-11-19 16:07:31.000000000 +0800
@@ -438,7 +438,6 @@ no_more:
  */
 int afs_writepage(struct page *page, struct writeback_control *wbc)
 {
-	struct backing_dev_info *bdi = page->mapping->backing_dev_info;
 	struct afs_writeback *wb;
 	int ret;
 
@@ -455,8 +454,6 @@ int afs_writepage(struct page *page, str
 	}
 
 	wbc->nr_to_write -= ret;
-	if (wbc->nonblocking && bdi_write_congested(bdi))
-		wbc->encountered_congestion = 1;
 
 	_leave(" = 0");
 	return 0;
@@ -469,7 +466,6 @@ static int afs_writepages_region(struct 
 				 struct writeback_control *wbc,
 				 pgoff_t index, pgoff_t end, pgoff_t *_next)
 {
-	struct backing_dev_info *bdi = mapping->backing_dev_info;
 	struct afs_writeback *wb;
 	struct page *page;
 	int ret, n;
@@ -529,11 +525,6 @@ static int afs_writepages_region(struct 
 
 		wbc->nr_to_write -= ret;
 
-		if (wbc->nonblocking && bdi_write_congested(bdi)) {
-			wbc->encountered_congestion = 1;
-			break;
-		}
-
 		cond_resched();
 	} while (index < end && wbc->nr_to_write > 0);
 
@@ -548,24 +539,16 @@ static int afs_writepages_region(struct 
 int afs_writepages(struct address_space *mapping,
 		   struct writeback_control *wbc)
 {
-	struct backing_dev_info *bdi = mapping->backing_dev_info;
 	pgoff_t start, end, next;
 	int ret;
 
 	_enter("");
 
-	if (wbc->nonblocking && bdi_write_congested(bdi)) {
-		wbc->encountered_congestion = 1;
-		_leave(" = 0 [congest]");
-		return 0;
-	}
-
 	if (wbc->range_cyclic) {
 		start = mapping->writeback_index;
 		end = -1;
 		ret = afs_writepages_region(mapping, wbc, start, end, &next);
-		if (start > 0 && wbc->nr_to_write > 0 && ret == 0 &&
-		    !(wbc->nonblocking && wbc->encountered_congestion))
+		if (start > 0 && wbc->nr_to_write > 0 && ret == 0)
 			ret = afs_writepages_region(mapping, wbc, 0, start,
 						    &next);
 		mapping->writeback_index = next;

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 03/12] writeback: remove unused nonblocking and congestion checks (pohmelfs)
       [not found] ` <20091118082845.828021716@intel.com>
@ 2009-11-19  8:11   ` Wu Fengguang
  2009-11-19 11:04     ` Evgeniy Polyakov
  0 siblings, 1 reply; 18+ messages in thread
From: Wu Fengguang @ 2009-11-19  8:11 UTC (permalink / raw)
  To: Evgeniy Polyakov, Andrew Morton, Jens Axboe
  Cc: linux-fsdevel@vger.kernel.org, LKML

Hi Evgeniy,

Will you pick up this updated patch? It also removes the unused bdi.

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

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: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
 drivers/staging/pohmelfs/inode.c |   10 ----------
 1 file changed, 10 deletions(-)

--- linux.orig/drivers/staging/pohmelfs/inode.c	2009-11-18 16:39:36.000000000 +0800
+++ linux/drivers/staging/pohmelfs/inode.c	2009-11-19 16:10:29.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:

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 12/12] bdi: use bdi_stat_sum() for more accurate debugfs stats
  2009-11-19  7:59     ` Wu Fengguang
@ 2009-11-19  8:12       ` Peter Zijlstra
  2009-11-19  8:17         ` Wu Fengguang
  0 siblings, 1 reply; 18+ messages in thread
From: Peter Zijlstra @ 2009-11-19  8:12 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, linux-fsdevel@vger.kernel.org

On Thu, 2009-11-19 at 15:59 +0800, Wu Fengguang wrote:
> On Wed, Nov 18, 2009 at 06:38:49PM +0800, Peter Zijlstra wrote:
> > On Wed, 2009-11-18 at 16:27 +0800, Wu Fengguang wrote:
> > > plain text document attachment (bdi-debug-dump-sum.patch)
> > > CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > > Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> > > ---
> > >  mm/backing-dev.c |    4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > --- linux.orig/mm/backing-dev.c	2009-11-18 16:25:28.000000000 +0800
> > > +++ linux/mm/backing-dev.c	2009-11-18 16:26:10.000000000 +0800
> > > @@ -104,8 +104,8 @@ static int bdi_debug_stats_show(struct s
> > >  		   "wb_mask:          %8lx\n"
> > >  		   "wb_list:          %8u\n"
> > >  		   "wb_cnt:           %8u\n",
> > > -		   (unsigned long) K(bdi_stat(bdi, BDI_WRITEBACK)),
> > > -		   (unsigned long) K(bdi_stat(bdi, BDI_RECLAIMABLE)),
> > > +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_WRITEBACK)),
> > > +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_RECLAIMABLE)),
> > >  		   K(bdi_thresh), K(dirty_thresh),
> > >  		   K(background_thresh), nr_wb, nr_dirty, nr_io, nr_more_io,
> > >  		   !list_empty(&bdi->bdi_list), bdi->state, bdi->wb_mask,
> > > 
> > 
> > Is this really important? This patch is basically a local DoS for large
> > machines.
> 
> I did this patch after seeing inaccurate exported numbers,
> it may be confusing..
> 
> > Imagine someone doing:
> > 
> > while :; do cat /debug/bdi/*/stats; done
> > 
> > on a 512 cpu box.
> 
> Yes there will be overheads. However it's always possible to
> create local DoS with some other kind of busy loop?

Preferably not of the kind that renders your box unusable, esp by unpriv
users.

But yes there are probably a few local DoS' around, but I don't think
that warrants adding another one.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 12/12] bdi: use bdi_stat_sum() for more accurate debugfs stats
  2009-11-19  8:12       ` Peter Zijlstra
@ 2009-11-19  8:17         ` Wu Fengguang
  0 siblings, 0 replies; 18+ messages in thread
From: Wu Fengguang @ 2009-11-19  8:17 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Andrew Morton, linux-fsdevel@vger.kernel.org

On Thu, Nov 19, 2009 at 04:12:04PM +0800, Peter Zijlstra wrote:
> On Thu, 2009-11-19 at 15:59 +0800, Wu Fengguang wrote:
> > On Wed, Nov 18, 2009 at 06:38:49PM +0800, Peter Zijlstra wrote:
> > > On Wed, 2009-11-18 at 16:27 +0800, Wu Fengguang wrote:
> > > > plain text document attachment (bdi-debug-dump-sum.patch)
> > > > CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> > > > Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
> > > > ---
> > > >  mm/backing-dev.c |    4 ++--
> > > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > > 
> > > > --- linux.orig/mm/backing-dev.c	2009-11-18 16:25:28.000000000 +0800
> > > > +++ linux/mm/backing-dev.c	2009-11-18 16:26:10.000000000 +0800
> > > > @@ -104,8 +104,8 @@ static int bdi_debug_stats_show(struct s
> > > >  		   "wb_mask:          %8lx\n"
> > > >  		   "wb_list:          %8u\n"
> > > >  		   "wb_cnt:           %8u\n",
> > > > -		   (unsigned long) K(bdi_stat(bdi, BDI_WRITEBACK)),
> > > > -		   (unsigned long) K(bdi_stat(bdi, BDI_RECLAIMABLE)),
> > > > +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_WRITEBACK)),
> > > > +		   (unsigned long) K(bdi_stat_sum(bdi, BDI_RECLAIMABLE)),
> > > >  		   K(bdi_thresh), K(dirty_thresh),
> > > >  		   K(background_thresh), nr_wb, nr_dirty, nr_io, nr_more_io,
> > > >  		   !list_empty(&bdi->bdi_list), bdi->state, bdi->wb_mask,
> > > > 
> > > 
> > > Is this really important? This patch is basically a local DoS for large
> > > machines.
> > 
> > I did this patch after seeing inaccurate exported numbers,
> > it may be confusing..
> > 
> > > Imagine someone doing:
> > > 
> > > while :; do cat /debug/bdi/*/stats; done
> > > 
> > > on a 512 cpu box.
> > 
> > Yes there will be overheads. However it's always possible to
> > create local DoS with some other kind of busy loop?
> 
> Preferably not of the kind that renders your box unusable, esp by unpriv
> users.
> 
> But yes there are probably a few local DoS' around, but I don't think
> that warrants adding another one.

OK I'll drop this patch. I'm not feeling strong on either way.

Andrew/Jens, do you prefer for me to repost the non-fs-specific patches?

Thanks,
Fengguang


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 03/12] writeback: remove unused nonblocking and congestion checks (pohmelfs)
  2009-11-19  8:11   ` [PATCH 03/12] writeback: remove unused nonblocking and congestion checks (pohmelfs) Wu Fengguang
@ 2009-11-19 11:04     ` Evgeniy Polyakov
  2009-11-20  1:53       ` Wu Fengguang
  0 siblings, 1 reply; 18+ messages in thread
From: Evgeniy Polyakov @ 2009-11-19 11:04 UTC (permalink / raw)
  To: Wu Fengguang
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org, LKML

H1.

On Thu, Nov 19, 2009 at 04:11:54PM +0800, Wu Fengguang (fengguang.wu@intel.com) wrote:
> Will you pick up this updated patch? It also removes the unused bdi.

I'm ok with the changes, but I suppose it should be pushed as a single
patchet into the tree, no?

-- 
	Evgeniy Polyakov

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 04/12] writeback: remove unused nonblocking and congestion checks (afs)
       [not found] ` <20091118082845.936295466@intel.com>
  2009-11-19  8:09   ` [PATCH 04/12] writeback: remove unused nonblocking and congestion checks (afs) Wu Fengguang
@ 2009-11-19 16:51   ` David Howells
  1 sibling, 0 replies; 18+ messages in thread
From: David Howells @ 2009-11-19 16:51 UTC (permalink / raw)
  To: Wu Fengguang
  Cc: dhowells, Andrew Morton, Jens Axboe,
	linux-fsdevel@vger.kernel.org, LKML

Wu Fengguang <fengguang.wu@intel.com> wrote:

> Will you pick up this updated patch? It also removes the unused bdi.

Sure - but it might be in a week and a bit.  I'm scrambling to get stuff done
before going on holiday next week.

David

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 03/12] writeback: remove unused nonblocking and congestion checks (pohmelfs)
  2009-11-19 11:04     ` Evgeniy Polyakov
@ 2009-11-20  1:53       ` Wu Fengguang
  2009-11-21 11:23         ` Evgeniy Polyakov
  0 siblings, 1 reply; 18+ messages in thread
From: Wu Fengguang @ 2009-11-20  1:53 UTC (permalink / raw)
  To: Evgeniy Polyakov
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org, LKML

Hi Evgeniy,

On Thu, Nov 19, 2009 at 07:04:13PM +0800, Evgeniy Polyakov wrote:
> H1.
> 
> On Thu, Nov 19, 2009 at 04:11:54PM +0800, Wu Fengguang (fengguang.wu@intel.com) wrote:
> > Will you pick up this updated patch? It also removes the unused bdi.
> 
> I'm ok with the changes, but I suppose it should be pushed as a single
> patchet into the tree, no?

Either way works. I would submit a single patchset that includes the
generic ones and the fs specific patches that have not been picked up
into their fs tree :)

Thanks,
Fengguang


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 07/12] writeback: remove unused nonblocking and congestion checks (xfs)
  2009-11-19  8:05     ` Wu Fengguang
@ 2009-11-20  7:24       ` Dave Chinner
  0 siblings, 0 replies; 18+ messages in thread
From: Dave Chinner @ 2009-11-20  7:24 UTC (permalink / raw)
  To: Wu Fengguang
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org,
	Christoph Hellwig, LKML

On Thu, Nov 19, 2009 at 04:05:22PM +0800, Wu Fengguang wrote:
> On Thu, Nov 19, 2009 at 05:27:55AM +0800, Dave Chinner wrote:
> > On Wed, Nov 18, 2009 at 04:26:55PM +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.
> > 
> > ....
> > 
> > > --- linux.orig/fs/xfs/linux-2.6/xfs_aops.c	2009-11-06 09:22:35.000000000 +0800
> > > +++ linux/fs/xfs/linux-2.6/xfs_aops.c	2009-11-06 09:52:21.000000000 +0800
> > > @@ -908,12 +908,8 @@ xfs_convert_page(
> > >  
> > >  			bdi = inode->i_mapping->backing_dev_info;
> > >  			wbc->nr_to_write--;
> > > -			if (bdi_write_congested(bdi)) {
> > > -				wbc->encountered_congestion = 1;
> > 
> > bdi is unused now, so can be removed as well. Otherwise looks fine.
> 
> Thanks, here is the updated patch.

Looks good.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 03/12] writeback: remove unused nonblocking and congestion checks (pohmelfs)
  2009-11-20  1:53       ` Wu Fengguang
@ 2009-11-21 11:23         ` Evgeniy Polyakov
  0 siblings, 0 replies; 18+ messages in thread
From: Evgeniy Polyakov @ 2009-11-21 11:23 UTC (permalink / raw)
  To: Wu Fengguang
  Cc: Andrew Morton, Jens Axboe, linux-fsdevel@vger.kernel.org, LKML

Hi.

On Fri, Nov 20, 2009 at 09:53:17AM +0800, Wu Fengguang (fengguang.wu@intel.com) wrote:
> > On Thu, Nov 19, 2009 at 04:11:54PM +0800, Wu Fengguang (fengguang.wu@intel.com) wrote:
> > > Will you pick up this updated patch? It also removes the unused bdi.
> > 
> > I'm ok with the changes, but I suppose it should be pushed as a single
> > patchet into the tree, no?
> 
> Either way works. I would submit a single patchset that includes the
> generic ones and the fs specific patches that have not been picked up
> into their fs tree :)

Please push it within your patchset to eliminate merge dependencies if
any. Thank you.

-- 
	Evgeniy Polyakov

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 08/12] ext4: remove encountered_congestion trace
       [not found] ` <20091118082846.404788666@intel.com>
@ 2009-11-24 16:18   ` tytso
  0 siblings, 0 replies; 18+ messages in thread
From: tytso @ 2009-11-24 16:18 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, Jens Axboe, linux-fsdevel, LKML

On Wed, Nov 18, 2009 at 04:26:56PM +0800, Wu Fengguang wrote:
> It is no longer set and scheduled to be removed.
> 
> CC: Theodore Ts'o <tytso@mit.edu>
> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>

Thanks, I've queued it in the ext4 patch queue.

	     	       	      - Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 09/12] ext4: remove unused parameter wbc from __ext4_journalled_writepage()
       [not found] ` <20091118082846.530386547@intel.com>
@ 2009-11-24 16:18   ` tytso
  0 siblings, 0 replies; 18+ messages in thread
From: tytso @ 2009-11-24 16:18 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: Andrew Morton, Jens Axboe, linux-fsdevel, Jan Kara, LKML

On Wed, Nov 18, 2009 at 04:26:57PM +0800, Wu Fengguang wrote:
> CC: Theodore Ts'o <tytso@mit.edu> 
> CC: Jan Kara <jack@suse.cz> 
> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>

Thanks, I've queued it in the ext4 patch queue.

	     	       	      	   	 - Ted

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2009-11-24 16:18 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20091118082648.140755818@intel.com>
     [not found] ` <20091118082846.170413359@intel.com>
2009-11-18  9:59   ` [PATCH 06/12] writeback: remove unused nonblocking and congestion checks (gfs2) Steven Whitehouse
2009-11-18 10:09     ` Wu Fengguang
2009-11-18 11:13       ` Steven Whitehouse
     [not found] ` <20091118082846.921451469@intel.com>
2009-11-18 10:38   ` [PATCH 12/12] bdi: use bdi_stat_sum() for more accurate debugfs stats Peter Zijlstra
2009-11-19  7:59     ` Wu Fengguang
2009-11-19  8:12       ` Peter Zijlstra
2009-11-19  8:17         ` Wu Fengguang
     [not found] ` <20091118082846.279046849@intel.com>
2009-11-18 21:27   ` [PATCH 07/12] writeback: remove unused nonblocking and congestion checks (xfs) Dave Chinner
2009-11-19  8:05     ` Wu Fengguang
2009-11-20  7:24       ` Dave Chinner
     [not found] ` <20091118082845.936295466@intel.com>
2009-11-19  8:09   ` [PATCH 04/12] writeback: remove unused nonblocking and congestion checks (afs) Wu Fengguang
2009-11-19 16:51   ` David Howells
     [not found] ` <20091118082845.828021716@intel.com>
2009-11-19  8:11   ` [PATCH 03/12] writeback: remove unused nonblocking and congestion checks (pohmelfs) Wu Fengguang
2009-11-19 11:04     ` Evgeniy Polyakov
2009-11-20  1:53       ` Wu Fengguang
2009-11-21 11:23         ` Evgeniy Polyakov
     [not found] ` <20091118082846.404788666@intel.com>
2009-11-24 16:18   ` [PATCH 08/12] ext4: remove encountered_congestion trace tytso
     [not found] ` <20091118082846.530386547@intel.com>
2009-11-24 16:18   ` [PATCH 09/12] ext4: remove unused parameter wbc from __ext4_journalled_writepage() tytso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).