On Wed, May 30, 2012 at 11:21:29AM +0800, Fengguang Wu wrote: [..] > (2) comes from the use of _WAIT_ flags in > > sync_file_range(..., SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER); > > Each sync_file_range() syscall will submit 8MB write IO and wait for > completion. That means the async write IO queue constantly swing > between 0 and 8MB fillness at the frequency (100MBps / 8MB = 12.5ms). > So on every 12.5ms, the async IO queue runs empty, which gives any > pending read IO (from firefox etc.) a chance to be serviced. Nice > and sweet breaks! I doubt that async IO queue is empty for 12.5ms. We wait for previous range to finish (index-1) and have already started the IO on next 8MB of pages. So effectively that should keep 8MB of async IO in queue (until and unless there are delays from user space side). So reason for latency improvement might be something else and not because async IO queue is empty for some time. 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