On Mon, Jun 07, 2010 at 06:09:03PM +0200, Jan Kara wrote: > On Sat 05-06-10 11:38:02, Nick Piggin wrote: > > On Fri, Jun 04, 2010 at 08:47:11PM +0200, Jan Kara wrote: > > > + if (wbc->sync_mode == WB_SYNC_ALL) > > > + tag_pages_for_writeback(mapping, index, end); > > > > I wonder if this is too much spinlock latency in a huge dirty file? > > Some kid of batching of the operation perhaps would be good? > You mean like copy tags for 4096 pages, then cond_resched the spin lock > and continue? That should be doable but it will give tasks that try to > livelock us more time (i.e. if there were 4096 tasks creating dirty pages > than probably they would be able to livelock us, won't they? Maybe we don't > care?). Not 100% sure. I think that if we've got the inode in I_SYNC state, it should stop cleaning and dirtiers will get throttled. Even if writeback was able to continue on that inode, it would be a big achievement to dirty then clean pages as fast as we are able to tag them in batches of 4096 :) -- 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