On Sat, Nov 06, 2010 at 10:54:23AM +0800, Wu Fengguang wrote: > > I think it would be useful to elaborate here on how livelock avoidance > > is supposed to work. > > It's supposed to sync files in a big loop > > for each dirty inode > write_cache_pages() > (quickly) tag currently dirty pages > (maybe slowly) sync all tagged pages > > Ideally the loop should call write_cache_pages() _once_ for each inode. > At least this is the assumption made by commit f446daaea (mm: > implement writeback livelock avoidance using page tagging). > > Setting wbc.nr_to_write to LONG_MAX ensures that writeback_inodes_wb() > will complete the above loop before returning to wb_writeback(), and > to prevent wb_writeback() from looping (thus re-syncing extra data) in > the below range of code. I know this, but putting a shortened version of this into the comment would generally be helpful. It should at least mention that the page tagging is taking care of it. -- 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