Zach Brown <zab@xxxxxxxxx> writes: > On 04/20/2012 11:20 AM, Jeff Moyer wrote: >> Dave Kleikamp<dave.kleikamp@xxxxxxxxxx> writes: >> >>> On 04/20/2012 09:48 AM, Maxim V. Patlasov wrote: >>>> On 03/30/2012 07:43 PM, Dave Kleikamp wrote: >>>>> From: Zach Brown<zab@xxxxxxxxx> >>>>> >>>>> This uses the new kernel aio interface to process loopback IO by >>>>> submitting concurrent direct aio. Previously loop's IO was serialized >>>>> by synchronous processing in a thread. >>>>> >>>> >>>> The patch ignores REQ_FLUSH bit of bi_rw. Is it simply overlook? >>> >>> Good question. Since the loop device is sending only direct IO requests, >>> it shouldn't be necessary to explicitly flush page cache, but REQ_FLUSH >> >> REQ_FLUSH isn't about the page cache, it's about flushing the volatile >> disk write cache. You need to handle that. > > I guess O_DIRECT doesn't routinely issue flushes simply because it's too > expensive? Bypassing the page cache is different from bypassing the underlying device's cache. O_DIRECT does not mean "straight to platter". > Apps that care about consistent IO and O_DIRECT are expected to not > have writeback caching enabled? 'cause there's no way they're issuing > syncs themselves. They most certainly should be! The app should be written with the assumption that there is a write-back cache on the storage. Turning those flushes into noops is an optimization the OS performs. See this lwn article: http://lwn.net/Articles/457667/. Cheers, Jeff -- 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