writeback: double the dirty thresholds

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Thursday, March 26, 2009 - 11:59 am

Gitweb:     http://git.kernel.org/linus/1b5e62b42b55c509eea04c3c0f25e42c8b35b564
Commit:     1b5e62b42b55c509eea04c3c0f25e42c8b35b564
Parent:     0a1c01c9477602ee8b44548a9405b2c1d587b5a2
Author:     Wu Fengguang <fengguang.wu@intel.com>
AuthorDate: Mon Mar 23 08:57:38 2009 +0800
Committer:  Linus Torvalds <torvalds@linux-foundation.org>
CommitDate: Thu Mar 26 11:01:11 2009 -0700

    writeback: double the dirty thresholds
    
    Enlarge default dirty ratios from 5/10 to 10/20.  This fixes [Bug
    #12809] iozone regression with 2.6.29-rc6.
    
    The iozone benchmarks are performed on a 1200M file, with 8GB ram.
    
      iozone -i 0 -i 1 -i 2 -i 3 -i 4 -r 4k -s 64k -s 512m -s 1200m -b tmp.xls
      iozone -B -r 4k -s 64k -s 512m -s 1200m -b tmp.xls
    
    The performance regression is triggered by commit 1cf6e7d83bf3(mm: task
    dirty accounting fix), which makes more correct/thorough dirty
    accounting.
    
    The default 5/10 dirty ratios were picked (a) with the old dirty logic
    and (b) largely at random and (c) designed to be aggressive.  In
    particular, that (a) means that having fixed some of the dirty
    accounting, maybe the real bug is now that it was always too aggressive,
    just hidden by an accounting issue.
    
    The enlarged 10/20 dirty ratios are just about enough to fix the regression.
    
    [ We will have to look at how this affects the old fsync() latency issue,
      but that probably will need independent work.  - Linus ]
    
    Cc: Nick Piggin <npiggin@suse.de>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Reported-by: "Lin, Ming M" <ming.m.lin@intel.com>
    Tested-by: "Lin, Ming M" <ming.m.lin@intel.com>
    Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---
 mm/page-writeback.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 74dc57c..40ca7cd 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -66,7 +66,7 @@ static inline long sync_writeback_pages(void)
 /*
  * Start background writeback (via pdflush) at this percentage
  */
-int dirty_background_ratio = 5;
+int dirty_background_ratio = 10;
 
 /*
  * dirty_background_bytes starts at 0 (disabled) so that it is a function of
@@ -83,7 +83,7 @@ int vm_highmem_is_dirtyable;
 /*
  * The generator of dirty data starts writeback at this percentage
  */
-int vm_dirty_ratio = 10;
+int vm_dirty_ratio = 20;
 
 /*
  * vm_dirty_bytes starts at 0 (disabled) so that it is a function of
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
writeback: double the dirty thresholds, Linux Kernel Mailing ..., (Thu Mar 26, 11:59 am)