Re: sleeps and waits during io_submit

Christoph Hellwig
2015-12-01T19:41:48Z

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.