On Fri, Jun 25, 2010 at 11:35:10PM -0400, Vivek Goyal wrote: > This logic was introduced by corrado to ensure WRITE_SYNC does not > lose fair share. Now we are back to the same question, what is the workload > which does that. > > 8e55063 cfq-iosched: fix corner cases in idling logic > > Before this patch, we will simply not do any idling on WRITE_SYNC. That > means no idling on O_SYNC/fsync paths but still idle on direct IO > WRITE_SYNC. Which is a bit of discrepancy. Corrado, can you explain what workloads you doing that commit for? The commit message doesn't really given any useful information. > - Stop idling on all the WRITE_SYNC IO. There is no reasonable way to > tell whether there will be more IO or not from applicatoin. This will > impact direct writes, O_SYNC writes and fsync(). > > If direct IO application is submitting writes with a delay in between > it can be starved out in presnce of competing workloads. So what application does this? > - Do idling by default on WRITE_SYNC path. Implement Jeff's queue yielding > patches. That way O_SYNC/fsyn path will call blk_yield() and stop idling. > Direct IO write path will stil continue to idle (I think if file has already > been laid out?). I don't think this makes much sense. And O_SYNC write / fsync are defined to not return before the I/O makes it to disk, and for any sane filesystem end with a WRITE_BARRIER request because of that. So we end these with an explicit unplug anyway, no need for idling logic. -- 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