On Tue, Nov 05, 2019 at 11:00:06AM -0800, John Hubbard wrote: > On 11/5/19 5:10 AM, Mike Rapoport wrote: > ... > >> --- > >> Documentation/vm/index.rst | 1 + > >> Documentation/vm/pin_user_pages.rst | 212 ++++++++++++++++++++++ > > > > I think it belongs to Documentation/core-api. > > Done: > > diff --git a/Documentation/core-api/index.rst b/Documentation/core-api/index.rst > index ab0eae1c153a..413f7d7c8642 100644 > --- a/Documentation/core-api/index.rst > +++ b/Documentation/core-api/index.rst > @@ -31,6 +31,7 @@ Core utilities > generic-radix-tree > memory-allocation > mm-api > + pin_user_pages > gfp_mask-from-fs-io > timekeeping > boot-time-mm Thanks! > ... > >> diff --git a/Documentation/vm/pin_user_pages.rst b/Documentation/vm/pin_user_pages.rst > >> new file mode 100644 > >> index 000000000000..3910f49ca98c > >> --- /dev/null > >> +++ b/Documentation/vm/pin_user_pages.rst > >> @@ -0,0 +1,212 @@ > >> +.. SPDX-License-Identifier: GPL-2.0 > >> + > >> +==================================================== > >> +pin_user_pages() and related calls > >> +==================================================== > > > > I know this is too much to ask, but having pin_user_pages() a part of more > > general GUP description would be really great :) > > > > Yes, definitely. But until I saw the reaction to the pin_user_pages() API > family, I didn't want to write too much--it could have all been tossed out > in favor of a whole different API. But now that we've had some initial > reviews, I'm much more confident in being able to write about the larger > API set. > > So yes, I'll put that on my pending list. > > > ... > >> +This document describes the following functions: :: > >> + > >> + pin_user_pages > >> + pin_user_pages_fast > >> + pin_user_pages_remote > >> + > >> + pin_longterm_pages > >> + pin_longterm_pages_fast > >> + pin_longterm_pages_remote > >> + > >> +Basic description of FOLL_PIN > >> +============================= > >> + > >> +A new flag for get_user_pages ("gup") has been added: FOLL_PIN. FOLL_PIN has > > > > Consider reading this after, say, half a year ;-) > > > > OK, OK. I knew when I wrote that that it was not going to stay new forever, but > somehow failed to write the right thing anyway. :) > > Here's a revised set of paragraphs: > > Basic description of FOLL_PIN > ============================= > > FOLL_PIN and FOLL_LONGTERM are flags that can be passed to the get_user_pages*() > ("gup") family of functions. FOLL_PIN has significant interactions and > interdependencies with FOLL_LONGTERM, so both are covered here. > > Both FOLL_PIN and FOLL_LONGTERM are internal to gup, meaning that neither > FOLL_PIN nor FOLL_LONGTERM should not appear at the gup call sites. This allows > the associated wrapper functions (pin_user_pages() and others) to set the > correct combination of these flags, and to check for problems as well. Great, thanks! > thanks, > > John Hubbard > NVIDIA -- Sincerely yours, Mike.