On Wed, May 21, 2008 at 02:25:05AM +0400, Evgeniy Polyakov wrote: > On Wed, May 21, 2008 at 07:46:17AM +1000, David Chinner (dgc@xxxxxxx) wrote: > > Oh, god no. Let's not put the inode_lock right at the top of the VM page > > cleaning path. We don't need to modify inode state, the superblock dirty > > lists, etc - all we need to do is write dirty pages on a given mapping in > > a more efficient manner. > > I'm not advocating that, but having swap on reclaim does not hurt anyone, > this is essentially the same, but with different underlying storage. Sure. But my point is simply that sync_inode() is far too heavy-weight to be used in a reclaim context. The fact that it holds the inode_lock will interfere with normal writeback via pdflush and that could potentially slow down writeback even more. e.g. think of kswapd threads running on 20 nodes of a NUMA machine all at once writing back dirty memory (yes, it happens). If we use sync_inode() to write back dirty mappings we would then have at least 20 CPUs serialising on the inode_lock trying to write back pages. If we instead use a thin wrapper around ->writepages() then they can all run in parallel through the filesystem(s), block devices, etc rather than being serialised at the highest possible layer.... > System > will do that anyway sooner or later during usual writeback, which in turn > can be a result of the same reclaim... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html