Re: [PATCH v2 4/7] iov_iter: new iov_iter_pin_pages*() routines

From: John Hubbard
Date: Tue Sep 06 2022 - 03:44:43 EST


On 9/5/22 23:47, Christoph Hellwig wrote:
> I'd it one step back. For BVECS we never need a get or pin. The
> block layer already does this, an the other callers should as well.
> For KVEC the same is true. For PIPE and xarray as you pointed out
> we can probably just do the pin, it is not like these are performance
> paths.
>
> So, I'd suggest to:
>
> - factor out the user backed and bvec cases from
> __iov_iter_get_pages_alloc into helper just to keep
> __iov_iter_get_pages_alloc readable.

OK, that part is clear.

> - for the pin case don't use the existing bvec helper at all, but
> copy the logic for the block layer for not pinning.

I'm almost, but not quite sure I get the idea above. Overall, what
happens to bvec pages? Leave the get_page() pin in place for FOLL_GET
(or USE_FOLL_GET), I suppose, but do...what, for FOLL_PIN callers?

thanks,

--
John Hubbard
NVIDIA