On Fri, Nov 20, 2020 at 02:54:57AM +0000, Matthew Wilcox wrote: > On Fri, Nov 20, 2020 at 02:25:08AM +0000, Pavel Begunkov wrote: > > On 20/11/2020 02:22, Ming Lei wrote: > > > iov_iter_npages(bvec) still can be improved a bit by the following way: > > > > Yep, was doing exactly that, +a couple of other places that are in my way. > > Are you optimising the right thing here? Assuming you're looking at > the one in do_blockdev_direct_IO(), wouldn't we be better off figuring > out how to copy the bvecs directly from the iov_iter into the bio > rather than calling dio_bio_add_page() for each page? Which is most effectively done by stopping to to use *blockdev_direct_IO and switching to iomap instead :)