From Takashi lock profiling shows - mpage_writepages - sync_supers Are causing latency problems. This adds some conditional schedules to help fix things Index: linux-2.6.8-rc1/fs/fs-writeback.c =================================================================== --- linux-2.6.8-rc1.orig/fs/fs-writeback.c 2004-07-15 02:41:40.000000000 +1000 +++ linux-2.6.8-rc1/fs/fs-writeback.c 2004-07-15 10:03:21.302037961 +1000 @@ -360,6 +360,7 @@ } spin_unlock(&inode_lock); iput(inode); + cond_resched(); spin_lock(&inode_lock); if (wbc->nr_to_write <= 0) break; @@ -419,6 +420,7 @@ } spin_unlock(&sb_lock); spin_unlock(&inode_lock); + cond_resched(); } /* Index: linux-2.6.8-rc1/fs/super.c =================================================================== --- linux-2.6.8-rc1.orig/fs/super.c 2004-07-15 10:03:10.180807305 +1000 +++ linux-2.6.8-rc1/fs/super.c 2004-07-15 10:03:21.303037802 +1000 @@ -320,6 +320,7 @@ { struct super_block * sb; restart: + cond_resched(); spin_lock(&sb_lock); sb = sb_entry(super_blocks.next); while (sb != sb_entry(&super_blocks))