From: Mike Rapoport <rppt@kernel.org> To: John Hubbard <jhubbard@nvidia.com> Cc: "Andrew Morton" <akpm@linux-foundation.org>, "Al Viro" <viro@zeniv.linux.org.uk>, "Alex Williamson" <alex.williamson@redhat.com>, "Benjamin Herrenschmidt" <benh@kernel.crashing.org>, "Björn Töpel" <bjorn.topel@intel.com>, "Christoph Hellwig" <hch@infradead.org>, "Dan Williams" <dan.j.williams@intel.com>, "Daniel Vetter" <daniel@ffwll.ch>, "Dave Chinner" <david@fromorbit.com>, "David Airlie" <airlied@linux.ie>, "David S . Miller" <davem@davemloft.net>, "Ira Weiny" <ira.weiny@intel.com>, "Jan Kara" <jack@suse.cz>, "Jason Gunthorpe" <jgg@ziepe.ca>, "Jens Axboe" <axboe@kernel.dk>, "Jonathan Corbet" <corbet@lwn.net>, "Jérôme Glisse" <jglisse@redhat.com>, "Magnus Karlsson" <magnus.karlsson@intel.com>, "Mauro Carvalho Chehab" <mchehab@kernel.org>, "Michael Ellerman" <mpe@ellerman.id.au>, "Michal Hocko" <mhocko@suse.com>, "Mike Kravetz" <mike.kravetz@oracle.com>, "Paul Mackerras" <paulus@samba.org>, "Shuah Khan" <shuah@kernel.org>, "Vlastimil Babka" <vbabka@suse.cz>, bpf@vger.kernel.org, dri-devel@lists.freedesktop.org, kvm@vger.kernel.org, linux-block@vger.kernel.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-media@vger.kernel.org, linux-rdma@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org, linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v2 05/18] mm/gup: introduce pin_user_pages*() and FOLL_PIN Date: Thu, 7 Nov 2019 10:07:07 +0200 Message-ID: <20191107080706.GB3239@rapoport-lnx> (raw) In-Reply-To: <9ac948a4-59bf-2427-2007-e460aad2848a@nvidia.com> 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.
next prev parent reply index Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-03 21:17 [PATCH v2 00/18] mm/gup: track dma-pinned pages: FOLL_PIN, FOLL_LONGTERM John Hubbard 2019-11-03 21:17 ` [PATCH v2 01/18] mm/gup: pass flags arg to __gup_device_* functions John Hubbard 2019-11-04 16:39 ` Jerome Glisse 2019-11-03 21:17 ` [PATCH v2 02/18] mm/gup: factor out duplicate code from four routines John Hubbard 2019-11-04 16:51 ` Jerome Glisse 2019-11-03 21:17 ` [PATCH v2 03/18] goldish_pipe: rename local pin_user_pages() routine John Hubbard 2019-11-04 16:52 ` Jerome Glisse 2019-11-03 21:17 ` [PATCH v2 04/18] media/v4l2-core: set pages dirty upon releasing DMA buffers John Hubbard 2019-11-10 10:10 ` Hans Verkuil 2019-11-11 21:46 ` John Hubbard 2019-11-03 21:18 ` [PATCH v2 05/18] mm/gup: introduce pin_user_pages*() and FOLL_PIN John Hubbard 2019-11-04 17:33 ` Jerome Glisse 2019-11-04 19:04 ` John Hubbard 2019-11-04 19:18 ` Jerome Glisse 2019-11-04 19:30 ` John Hubbard 2019-11-04 19:52 ` Jerome Glisse 2019-11-04 20:09 ` John Hubbard 2019-11-04 20:31 ` Jason Gunthorpe 2019-11-04 20:40 ` John Hubbard 2019-11-04 20:31 ` Jerome Glisse 2019-11-04 20:37 ` Jason Gunthorpe 2019-11-04 20:57 ` John Hubbard 2019-11-04 21:15 ` Jason Gunthorpe 2019-11-04 21:34 ` John Hubbard 2019-11-04 20:33 ` David Rientjes 2019-11-04 20:48 ` Jerome Glisse 2019-11-05 13:10 ` Mike Rapoport 2019-11-05 19:00 ` John Hubbard 2019-11-07 2:25 ` Ira Weiny 2019-11-07 8:07 ` Mike Rapoport [this message] 2019-11-03 21:18 ` [PATCH v2 06/18] goldish_pipe: convert to pin_user_pages() and put_user_page() John Hubbard 2019-11-03 21:18 ` [PATCH v2 07/18] infiniband: set FOLL_PIN, FOLL_LONGTERM via pin_longterm_pages*() John Hubbard 2019-11-04 20:33 ` Jason Gunthorpe 2019-11-04 20:48 ` John Hubbard 2019-11-04 20:57 ` Jason Gunthorpe 2019-11-04 22:03 ` John Hubbard 2019-11-05 2:32 ` Jason Gunthorpe 2019-11-07 2:26 ` Ira Weiny 2019-11-03 21:18 ` [PATCH v2 08/18] mm/process_vm_access: set FOLL_PIN via pin_user_pages_remote() John Hubbard 2019-11-04 17:41 ` Jerome Glisse 2019-11-03 21:18 ` [PATCH v2 09/18] drm/via: set FOLL_PIN via pin_user_pages_fast() John Hubbard 2019-11-04 17:44 ` Jerome Glisse 2019-11-04 18:22 ` John Hubbard 2019-11-03 21:18 ` [PATCH v2 10/18] fs/io_uring: set FOLL_PIN via pin_user_pages() John Hubbard 2019-11-03 21:18 ` [PATCH v2 11/18] net/xdp: " John Hubbard 2019-11-03 21:18 ` [PATCH v2 12/18] mm/gup: track FOLL_PIN pages John Hubbard 2019-11-04 18:52 ` Jerome Glisse 2019-11-04 22:49 ` John Hubbard 2019-11-04 23:49 ` Jerome Glisse 2019-11-05 0:18 ` John Hubbard 2019-11-03 21:18 ` [PATCH v2 13/18] media/v4l2-core: pin_longterm_pages (FOLL_PIN) and put_user_page() conversion John Hubbard 2019-11-10 10:11 ` Hans Verkuil 2019-11-03 21:18 ` [PATCH v2 14/18] vfio, mm: " John Hubbard 2019-11-03 21:18 ` [PATCH v2 15/18] powerpc: book3s64: convert to pin_longterm_pages() and put_user_page() John Hubbard 2019-11-03 21:18 ` [PATCH v2 16/18] mm/gup_benchmark: support pin_user_pages() and related calls John Hubbard 2019-11-03 21:18 ` [PATCH v2 17/18] selftests/vm: run_vmtests: invoke gup_benchmark with basic FOLL_PIN coverage John Hubbard 2019-11-03 21:18 ` [PATCH v2 18/18] mm/gup: remove support for gup(FOLL_LONGTERM) John Hubbard
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191107080706.GB3239@rapoport-lnx \ --to=rppt@kernel.org \ --cc=airlied@linux.ie \ --cc=akpm@linux-foundation.org \ --cc=alex.williamson@redhat.com \ --cc=axboe@kernel.dk \ --cc=benh@kernel.crashing.org \ --cc=bjorn.topel@intel.com \ --cc=bpf@vger.kernel.org \ --cc=corbet@lwn.net \ --cc=dan.j.williams@intel.com \ --cc=daniel@ffwll.ch \ --cc=davem@davemloft.net \ --cc=david@fromorbit.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=hch@infradead.org \ --cc=ira.weiny@intel.com \ --cc=jack@suse.cz \ --cc=jgg@ziepe.ca \ --cc=jglisse@redhat.com \ --cc=jhubbard@nvidia.com \ --cc=kvm@vger.kernel.org \ --cc=linux-block@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-kselftest@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-rdma@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=magnus.karlsson@intel.com \ --cc=mchehab@kernel.org \ --cc=mhocko@suse.com \ --cc=mike.kravetz@oracle.com \ --cc=mpe@ellerman.id.au \ --cc=netdev@vger.kernel.org \ --cc=paulus@samba.org \ --cc=shuah@kernel.org \ --cc=vbabka@suse.cz \ --cc=viro@zeniv.linux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
BPF Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/bpf/0 bpf/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 bpf bpf/ https://lore.kernel.org/bpf \ bpf@vger.kernel.org public-inbox-index bpf Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.bpf AGPL code for this site: git clone https://public-inbox.org/public-inbox.git