From: Jason Gunthorpe <jgg@ziepe.ca>
To: "Weiny, Ira" <ira.weiny@intel.com>
Cc: "linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
Daniel Borkmann <daniel@iogearbox.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"Marciniszyn, Mike" <mike.marciniszyn@intel.com>,
"Dalessandro, Dennis" <dennis.dalessandro@intel.com>,
Doug Ledford <dledford@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
"Williams, Dan J" <dan.j.williams@intel.com>
Subject: Re: [PATCH 0/3] Add gup fast + longterm and use it in HFI1
Date: Mon, 11 Feb 2019 15:50:52 -0700 [thread overview]
Message-ID: <20190211225052.GL24692@ziepe.ca> (raw)
In-Reply-To: <2807E5FD2F6FDA4886F6618EAC48510E79BCF37B@CRSMSX101.amr.corp.intel.com>
On Mon, Feb 11, 2019 at 10:40:02PM +0000, Weiny, Ira wrote:
> > Many drivers do this, the 'doorbell' is a PCI -> CPU thing of some sort
>
> My surprise is why does _userspace_ allocate this memory?
Well, userspace needs to read the memory, so either userpace allocates
it and the kernel GUP's it, or userspace mmap's a kernel page which
was DMA mapped.
The GUP version lets the doorbells have lower alignment than a PAGE,
and thes RDMA drivers hard requires GUP->DMA to function..
So why not use a umem here? It already has to work.
> > > This does not seem to be allocating memory regions. Jason, do you
> > > want a patch to just convert these calls and consider it legacy code?
> >
> > It needs to use umem like all the other drivers on this path.
> > Otherwise it doesn't get the page pinning logic right
>
> Not sure what you mean regarding the pinning logic?
The RLIMIT_MEMLOCK stuff and so on.
> > There is also something else rotten with these longterm callsites,
> > they seem to have very different ideas how to handle
> > RLIMIT_MEMLOCK.
> >
> > ie vfio doesn't even touch pinned_vm.. and rdma is applying
> > RLIMIT_MEMLOCK to mm->pinned_vm, while vfio is using locked_vm.. No
> > idea which is right, but they should be the same, and this pattern should
> > probably be in core code someplace.
>
> Neither do I. But AFAIK pinned_vm is a subset of locked_vm.
I thought so..
> So should we be accounting both of the counters?
Someone should check :)
Since we don't increment locked_vm when we increment pinned_vm and
vfio only checke RLIMIT_MEMLOCK against locked_vm one can certainly
exceed the limit by mixing and matching RDMA and VFIO pins in the same
process. Sure seems like there is a bug somewhere here.
Jason
next prev parent reply other threads:[~2019-02-11 22:50 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-11 20:16 [PATCH 0/3] Add gup fast + longterm and use it in HFI1 ira.weiny
2019-02-11 20:16 ` [PATCH 1/3] mm/gup: Change "write" parameter to flags ira.weiny
2019-02-11 20:16 ` [PATCH 2/3] mm/gup: Introduce get_user_pages_fast_longterm() ira.weiny
2019-02-11 20:39 ` Jason Gunthorpe
2019-02-11 21:13 ` John Hubbard
2019-02-11 21:13 ` John Hubbard
2019-02-11 21:26 ` Ira Weiny
2019-02-11 21:39 ` John Hubbard
2019-02-11 21:39 ` John Hubbard
2019-02-11 21:45 ` Dan Williams
2019-02-11 21:52 ` Ira Weiny
2019-02-11 22:01 ` John Hubbard
2019-02-11 22:01 ` John Hubbard
2019-02-11 22:06 ` Jason Gunthorpe
2019-02-11 22:55 ` Dan Williams
2019-02-11 23:04 ` Weiny, Ira
2019-02-11 23:25 ` Jason Gunthorpe
2019-02-12 0:08 ` Ira Weiny
2019-02-11 20:16 ` [PATCH 3/3] IB/HFI1: Use new get_user_pages_fast_longterm() ira.weiny
2019-02-11 20:34 ` [PATCH 0/3] Add gup fast + longterm and use it in HFI1 Davidlohr Bueso
2019-02-11 20:47 ` Jason Gunthorpe
2019-02-11 21:42 ` Ira Weiny
2019-02-11 22:22 ` Jason Gunthorpe
2019-02-11 22:40 ` Weiny, Ira
2019-02-11 22:50 ` Jason Gunthorpe [this message]
2019-02-11 21:29 ` Ira Weiny
2019-02-11 20:40 ` Jason Gunthorpe
2019-02-11 21:14 ` Weiny, Ira
2019-02-11 22:23 ` Jason Gunthorpe
2019-02-13 23:04 ` [PATCH V2 0/7] Add FOLL_LONGTERM to GUP fast and use it ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` [PATCH V2 1/7] mm/gup: Replace get_user_pages_longterm() with FOLL_LONGTERM ira.weiny
2019-02-13 23:04 ` ira.weiny--- via dri-devel
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` [PATCH V2 2/7] mm/gup: Change write parameter to flags in fast walk ira.weiny--- via dri-devel
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` [PATCH V2 3/7] mm/gup: Change GUP fast to use flags rather than a write 'bool' ira.weiny
2019-02-13 23:04 ` ira.weiny--- via dri-devel
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:11 ` Jason Gunthorpe
2019-02-13 23:11 ` Jason Gunthorpe
2019-02-13 23:11 ` Jason Gunthorpe
2019-02-13 23:52 ` Ira Weiny via dri-devel
2019-02-13 23:52 ` Ira Weiny via dri-devel
2019-02-13 23:52 ` Ira Weiny
2019-02-13 23:52 ` Ira Weiny
2019-02-13 23:52 ` Ira Weiny
2019-02-13 23:04 ` [PATCH V2 4/7] mm/gup: Add FOLL_LONGTERM capability to GUP fast ira.weiny--- via dri-devel
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` [PATCH V2 5/7] IB/hfi1: Use the new FOLL_LONGTERM flag to get_user_pages_fast() ira.weiny
2019-02-13 23:04 ` ira.weiny--- via dri-devel
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` [PATCH V2 6/7] IB/qib: " ira.weiny
2019-02-13 23:04 ` ira.weiny--- via dri-devel
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` [PATCH V2 7/7] IB/mthca: " ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
2019-02-13 23:04 ` ira.weiny
-- strict thread matches above, loose matches on Subject: below --
2019-02-15 18:29 [PATCH V2 0/7] Add FOLL_LONGTERM to GUP fast and use it Ira Weiny
2019-02-15 18:29 ` Ira Weiny
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=20190211225052.GL24692@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=akpm@linux-foundation.org \
--cc=dan.j.williams@intel.com \
--cc=daniel@iogearbox.net \
--cc=dennis.dalessandro@intel.com \
--cc=dledford@redhat.com \
--cc=ira.weiny@intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rdma@vger.kernel.org \
--cc=mike.marciniszyn@intel.com \
--cc=netdev@vger.kernel.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.