[RFC 00/11] DAX fsynx/msync support
Jeff Moyer
jmoyer at redhat.com
Thu Nov 5 13:49:21 CST 2015
Dave Chinner <david at 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
More information about the xfs
mailing list