On Tue, Dec 01, 2015 at 09:26:42PM +0200, Avi Kivity wrote: > It's basically the same thing. To to this, we'd have get_block either > return the block's address (if it was in some metadata cache), or, if it was > not, issue an I/O that fills (part of) that cache, and as its completion > function, a continuation that reruns __blockdev_direct_IO from the point it > was stopped so it can submit the data I/O (if the metadata cache was > completely updated) or issue the next I/O aiming to fill that metadata > cache, if it was not. We did something this for blocking reads with great results, and it could be done similarly for direct I/O I think: https://lwn.net/Articles/612483/ Unfortunately Andrew shut it down for odd reasons so it didn't get in. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs