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.
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;
/*
* 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