Messages in this thread | | | Date | Fri, 21 Nov 2014 02:06:57 -0800 | From | Christoph Hellwig <> | Subject | Re: [RFC PATCH 0/6] btrfs: implement swap file support |
| |
On Tue, Nov 18, 2014 at 11:22:35PM -0800, Omar Sandoval wrote: > Here's a nice little bit of insanity I put together in that direction -- > consider it a discussion point more than a patch. It does two things: > > - Uses an ITER_BVEC iov_iter to do direct_IO for swap_readpage. This makes > swap_readpage a synchronous operation, but I think that's the best we can do > with the existing interface.
Note that ->read_iter for direct-io supports async I/O in general. By resurrecting some of the older attempts to do in-kernel aio this could be made async easily.
> - Unless I'm missing something, there don't appear to be any instances of > ITER_BVEC | READ in the kernel, so the dio path doesn't know not to dirty > pages it gets that way. Dave Kleikamp and Ming Lei each previously submitted > patches doing this as part of adding an aio_kernel interface. (The NFS direct > I/O implementation doesn't know how to deal with these either, so this patch > actually breaks the only existing user of this code path, but in the interest > of keeping the patch short, I didn't try to fix it :)
Right, we'd need to look into. Bonus points of allowing this as a zero copy read.
Btw, in the long run I would much prefer killing of the current horrible swap using bmap path in favor of an enhanced direct I/O path.
| |