On Thu, Jun 09, 2011 at 10:21:33AM -0400, Christoph Hellwig wrote: > On Thu, Jun 09, 2011 at 10:12:38PM +0800, Tao Ma wrote: > > Just want to say more about the situation here. Actually the flusher is > > too much easier to be blocked by the sync requests. And whenever it is > > blocked, it takes a quite long time to get back(because several cfq > > designs), so do you think we can use WRITE_SYNC for the bdev inodes in > > flusher? AFAICS, in most of the cases when a volume is mounted, the > > writeback for a bdev inode means the metadata writeback. And they are > > very important for a file system and should be written as far as > > possible. I ran my test cases with the change, and now the livelock > > doesn't show up anymore. > > It's not a very good guestimate for metadata. A lot of metadata is > either stored in directories (often happens for directories) or doesn't > use the pagecache writeback functions at all. > > The major problem here seems to be that async requests simply starve > sync requests far too much. You mean sync requests starve async requests? It is possible that CFQ can starve async requests for long time in presence of sync reqeusts. If that's the case, all the reported issues should go away with deadline scheduler. As I mentioned in other mail, one commit made the dias very heavily loaded in favor of sync requests. commit f8ae6e3eb8251be32c6e913393d9f8d9e0609489 Author: Shaohua Li <shaohua.li@xxxxxxxxx> Date: Fri Jan 14 08:41:02 2011 +0100 block cfq: make queue preempt work for queues from different workload I will do some quick tests and try to write a small patch where we can keep track of how many times sync and async workloads have been scheduled and make sure we don't starve async req completely. Thanks Vivek -- 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