Dave Chinner <david@xxxxxxxxxxxxx> 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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>