]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] Tweak VM dirty thresholds
authorAndrew Morton <akpm@zip.com.au>
Wed, 1 May 2002 04:43:19 +0000 (21:43 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Wed, 1 May 2002 04:43:19 +0000 (21:43 -0700)
The below patch on 2.5.12 takes the 'dbench 32' throughput on a
1024 megabyte machine from 35 megs/sec up to 125 megs/sec.
That's on the second run.  The first run is much slower because
the ext2 bitmaps aren't in cache.

Presumably, s/60/80/ will take it even higher.

fs/fs-writeback.c
mm/page-writeback.c

index 3bdc242c2e9909ee1dd7e8ad0dc3bebb1c3e6fc3..1c46f668217682b535b1c1ea8fd24297e1ff80f3 100644 (file)
@@ -219,7 +219,7 @@ static void __sync_list(struct list_head *head, int sync_mode,
        struct list_head * tmp;
        LIST_HEAD(hold);        /* Unready inodes go here */
 
-       while ((tmp = head->next) != head) {
+       while ((tmp = head->prev) != head) {
                struct inode *inode = list_entry(tmp, struct inode, i_list);
                struct address_space *mapping = inode->i_mapping;
                int really_sync;
index 9f0a544d699ee492d6764a5d1b239d6467d9da08..2484d1be48bff6c939564e5807c42160d1cfbeef 100644 (file)
 /*
  * Start background writeback (via pdflush) at this level
  */
-static int dirty_background_ratio = 30;
+static int dirty_background_ratio = 20;
 
 /*
  * The generator of dirty data starts async writeback at this level
  */
-static int dirty_async_ratio = 45;
+static int dirty_async_ratio = 60;
 
 /*
  * The generator of dirty data performs sync writeout at this level