Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()

Bharath Vedartham
2019-08-20T16:24:45Z

On Mon, Aug 19, 2019 at 12:30:18PM -0700, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> >On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> >>Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
> >Thanks!
> >
> >John, would you like to take this patch into your miscellaneous
> >conversions patch set?
> >
>
> (+Andrew and Michal, so they know where all this is going.)
>
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
>
> Conversion of gup/put_page sites:
>
> Before:
>
> get_user_pages(...);
> ...
> for each page:
> put_page();
>
> After:
>
> gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> vaddr_pin_user_pages(...gup_flags...)
> ...
> vaddr_unpin_user_pages(); /* which invokes put_user_page() */
>
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)
>
> So for now, I'm going to just build on top of Ira's tree, and once the
> vaddr*() API settles down, I'll send out an updated series that attempts
> to include the reviews and ACKs so far (I'll have to review them, but
> make a note that review or ACK was done for part of the conversion),
> and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
> gup/pup.
>
> [1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard@nvidia.com
>
> [2] https://lore.kernel.org/r/20190809175210.GR18351@dhcp22.suse.cz
>
Cc' lkml(I missed out the 'l' in this series).

sounds good. It makes sense to keep the entire gup in the kernel rather
than to expose it outside.

I ll make sure to checkout the emails on vaddr*() API and pace my work
on it accordingly.

Thank you
Bharath
> thanks,
> --
> John Hubbard
> NVIDIA