Re: [PATCH v3 2/4] iov_iter: Add a function to extract a page list from an iterator

From: Logan Gunthorpe
Date: Tue Dec 06 2022 - 13:40:58 EST




On 2022-12-06 11:35, David Howells wrote:
> Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote:
>
>> If this is going to be a general replacement for iov_iter_get_pages()
>> it's going to need to pass through gup_flags. My recent patchset added
>> versions with these and I think it should be in during the next merge
>> cycle. [1]
>
> Cool. Note that the current iov_iter_get_pages2() is broken, which is why Al
> wanted a replacement. It should not be taking a ref on the pages in an
> XARRAY, BVEC or PIPE - and it should be pinning rather than getting a ref on
> pages in IOVEC or UBUF if the buffer is being read into. I'm guessing that
> your changes move the latter decision to the caller?

My changes maintained the status quo in terms of brokenness. They simply
added the gup_flags so I could pass a P2PDMA flag in a couple specific
cases. I have no objections to the other changes and vaguely look ok to
me, but having not seen patches to convert the users I care about, I
thought I'd point out that the P2PDMA use case will need to be supported
somehow.

Logan