RE: [PATCH 0/3] Add gup fast + longterm and use it in HFI1

From: Weiny, Ira
Date: Mon Feb 11 2019 - 16:15:03 EST


>
> On Mon, Feb 11, 2019 at 12:16:40PM -0800, ira.weiny@xxxxxxxxx wrote:
> > From: Ira Weiny <ira.weiny@xxxxxxxxx>
> >
> > NOTE: This series depends on my clean up patch to remove the write
> > parameter from gup_fast_permitted()[1]
> >
> > HFI1 uses get_user_pages_fast() due to it performance advantages.
> > Like RDMA,
> > HFI1 pages can be held for a significant time. But
> > get_user_pages_fast() does not protect against mapping of FS DAX pages.
>
> If HFI1 can use the _fast varient, can't all the general RDMA stuff use it too?
>
> What is the guidance on when fast vs not fast should be use?

Right now it can't because it holds mmap_sem across the call. Once Shiraz's patches are accepted removing the umem->hugetlb flag I think we can change umem.c.

Also, it specifies FOLL_FORCE which can't currently be specified with gup fast. One idea I had was to change get_user_pages_fast() to use gup_flags instead of a single write flag. But that proved to be a very big cosmetic change across a lot of callers so I went this way.

Ira

>
> Jason