On 6/23/17 2:59 AM, Jan Kara wrote: > On Thu 22-06-17 12:55:50, Jeff Moyer wrote: >> Christoph or Jan, any thoughts on this? > > So our stance has been: Do not ever mix buffered and direct IO! Definitely > not on the same file range, most definitely not at the same time. FWIW, I'd always known that concurrent buffered & direct wasn't particularly deterministic, i.e. the racing buffered read may get old or new data at the time. I was surprised to learn that the stale file data would linger indefinitely in the page cache though. Maybe I was just blissfully unaware. :) -Eric > The thing we do is a best effort thing that more or less guarantees that if > you do say buffered IO and direct IO after that, it will work reasonably. > However if direct and buffered IO can race, bad luck for your data. I don't > think we want to sacrifice any performance of AIO DIO (and offloading of > direct IO completion to a workqueue so that we can do invalidation costs > noticeable mount of performance) for supporting such usecase. > > Honza >