Re: [RFC 00/11] DAX fsynx/msync support

Jeff Moyer
2015-11-05T19:49:30Z

Dave Chinner <david@fromorbit.com> writes:

>> But this part is not. It is up to the I/O scheduler to decide when to
>> dispatch requests. It can hold on to them for a variety of reasons.
>> Flush requests, however, do not go through the I/O scheduler. At the
>
> That's pure REQ_FLUSH bios, right? Aren't data IOs with
> REQ_FLUSH|REQ_FUA sorted like any other IO?

No, they also go through the flush machinery, and so short-circuit the
I/O scheduler.

>> Des xfs rely on this model for correctness? If so, I'd say we've got a
>> problem
>
> No, it doesn't. The XFS integrity model doesn't trust the IO layers
> to tell the truth about IO ordering and completion or for it's
> developers to fully understand how IO layer ordering works. :P
>
> i.e. we wait for full completions of all dependent IO before issuing
> flushes or log writes that use REQ_FLUSH|REQ_FUA semantics to ensure
> the dependent IOs are fully caught by the cache flushes...

OK, phew! ;-)

-Jeff