On 09/05/2017 01:00 PM, Sitsofe Wheeler wrote: > On 5 September 2017 at 15:58, Jens Axboe <axboe@xxxxxxxxx> wrote: >> On 09/05/2017 08:54 AM, Tomohiro Kusumi wrote: >>> I think I've made three fixes over the original two commits. >>> >>> 1. non O_DIRECT dio support -> committed -> now reverted >>> 2. segfault on fio_memfree() -> committed -> now reverted >>> 3. this one >>> >>> As far as I've seen this is it. >> >> Right, just checked (and reverted) and it's 5 changes all in >> all for the change, not including the parent to this email, >> which would have made it 6 in all. The original change from Weiping >> clearly wasn't well tested or thought through, so it's better >> to just kill it all and do it cleanly from scratch instead. > > Unfortunately it's been a problem magnetic with stacks of extra > conditions turning up and corner cases to stumble over (see > https://github.com/sitsofe/fio/commit/8fed4ccc87e39144643b1e32caddd882e6197e58 > for yet another case that was going to need fixing). > >> That said, I'm not even convinced we need this change. Logically >> it makes sense, but there's really nothing wrong with doing >> a buffered layout + cache kill as we have been doing since >> the dawn of time in fio. > > One of the benefits was that it stopped > > rm -f /tmp/fiofile; ./fio --loops=10 --filename /tmp/fiofile --bs=4k \ > --size=1M --direct=1 --name=go > > reporting cached speeds on macOS (a platform where invalidation > doesn't work). The sad thing is that the change wound up slowing > layout right down because the I/O is potentially done in such small > sizes. With the problems it attracted it need a re-think if it's to > avoid attracting a never ending stream of workarounds. Slowing down layout for everyone is a much larger issue (and a regression), whereas the lack of cache invalidation on a 2nd tier platform is much less interesting. Of the two, I know what I'd pick. It'd be nice if we can get everything working nicely. Honestly, it's not rocket science (at all) to use O_DIRECT for layouts. The performance issue is the biggest hurdle, the only thing we can do there is use a larger block size and hope it closes enough of the gap. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html