On Thu, Jul 29, 2010 at 07:51:42PM +0800, Wu Fengguang wrote: > Andrew, > > It's possible to transfer ASYNC vmscan writeback IOs to the flusher threads. > This simple patchset shows the basic idea. Since it's a big behavior change, > there are inevitably lots of details to sort out. I don't know where it will > go after tests and discussions, so the patches are intentionally kept simple. > > sync livelock avoidance (need more to be complete, but this is minimal required for the last two patches) > [PATCH 1/5] writeback: introduce wbc.for_sync to cover the two sync stages > [PATCH 2/5] writeback: stop periodic/background work on seeing sync works > [PATCH 3/5] writeback: prevent sync livelock with the sync_after timestamp > > let the flusher threads do ASYNC writeback for pageout() > [PATCH 4/5] writeback: introduce bdi_start_inode_writeback() > [PATCH 5/5] vmscan: transfer async file writeback to the flusher I really do not like this - all it does is transfer random page writeback from vmscan to the flusher threads rather than avoiding random page writeback altogether. Random page writeback is nasty - just say no. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>