Thread (54 messages) 54 messages, 9 authors, 2018-07-19

Re: [PATCH 2/2] blkdev: __blkdev_direct_IO_simple: make sure to fill up the bio

From: Ming Lei <hidden>
Date: 2018-07-19 10:46:32

On Thu, Jul 19, 2018 at 12:37:13PM +0200, Jan Kara wrote:
On Thu 19-07-18 18:21:23, Ming Lei wrote:
quoted
On Thu, Jul 19, 2018 at 11:39:18AM +0200, Martin Wilck wrote:
quoted
bio_iov_iter_get_pages() returns only pages for a single non-empty
segment of the input iov_iter's iovec. This may be much less than the number
of pages __blkdev_direct_IO_simple() is supposed to process. Call
In bio_iov_iter_get_pages(), iov_iter_get_pages() supposes to retrieve
as many as possible pages since both 'maxsize' and 'maxpages' are provided
to cover all.

So the question is why iov_iter_get_pages() doesn't work as expected?
Well, there has never been a promise that it will grab *all* pages in the
iter AFAIK. Practically, I think that it was just too hairy to implement in
the macro magic that iter processing is... Al might know more (added to
CC).
OK, I got it, given get_user_pages_fast() may fail and it is reasonable
to see less pages retrieved.

Thanks,
Ming
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help