Chris, This is one possible implementation of the clustered writeback idea. It runs OK on ext3 (compiling, syncing, etc.).
The patch is based on 2.6.23-rc3-mm1 and the writeback patches here: http://lkml.org/lkml/2007/8/19/10 By default, with many dirty inodes, it works as follows: - store dirty inodes in a radix tree, indexed by their inode numbers - sweep the whole inode number space in 25s and do it in 5 times - each time we walk only 1/5 of the inode number space - pull all inodes with dirty-age larger than 5s to the io dispatching queue Because it does the work in small batches of 10 inodes, when the system has <=10 dirty inodes, its behavior will reduce to: - do a full sweep *at once* on every 25s Which means the disk will flicker once every 25s, not bad :) The implications for the majority users could be: - medium-to-heavy writes becomes less seeky - dirty inodes are getting synced earlier(before: 30s; now: 5-30s) - less panic for the 'atime' mount option (a future work) Fengguang -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/