On Sat, Aug 15, 2009 at 03:57:42PM -0400, Christoph Hellwig wrote: > On Fri, Aug 14, 2009 at 05:25:05PM +0200, Nick Piggin wrote: > > Now I think the main problem is having the filesystem block (and do IO > > in inode reclaim. The problem is that this doesn't get accounted well > > and penalizes a random allocator with a big latency spike caused by > > work generated from elsewhere. > > > > I think the best idea would be to avoid this. By design if possible, > > or by deferring the hard work to an asynchronous context. If the latter, > > then the fs would probably want to throttle creation of new work with > > queue size of the deferred work, but let's not get into those details. > > I don't really see a good way to avoid this. For any filesystem that > does some sort of preallocations we need to drop them in ->clear_inode. OK, I agree sometimes it is not going to be possible. Although if the preallocations are on-disk, do you still have to drop them? If not on disk, then no IO is required. But anyway, I propose this patch exactly because it is not always possible to avoid slow/blocking ops (even in the vfs there are some). If it ever turns up to be a problem after that, I guess it might be possible to have another callback to schedule async slow work before dropping the inode. Or something like that. -- 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