On Tue, Jun 13, 2017 at 10:14:10AM -0400, Sweet Tea Dorminy wrote: > Thank you! I'm glad that we've established it's a mismatch between our > device's implementation and XFS expectations. > > >.... XFS issues log writes with REQ_PREFLUSH|REQ_FUA. This means > >sequentially issued log writes have clearly specified ordering > >constraints. i.e. the preflush completion order requirements means > >that the block device must commit preflush+write+fua bios to stable > >storage in the exact order they were issued by the filesystem.... > > That is certainly what REQ_BARRIER did back in the day. But when > REQ_BARRIER was replaced with separate REQ_FUA and REQ_FLUSH > flags, and barrier.txt got replaced with writeback_cache_control.txt, > the documentation seemed to imply the ordering requirement on *issued* > IO had gone away (but maybe I'm missing something). Yes, that's my understanding, too, but I also thought that multiple outstanding flushes are ordered by the block layer. i.e. flushes can be reordered against other operations, but not other flushes. I could very well be wrong, but flush-to-flush ordering was what I thought the ordered pending flush list for PREFLUSH requests in blk_flush_complete_seq() did. Like I said, Christoph is the expert here - he'll correct me if I'm wrong. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html