[PATCH v2 0/2] IB/umem: use get_user_pages_fast() to pin DMA pages

From: John Hubbard
Date: Wed Dec 04 2019 - 16:36:10 EST


Hi,

The reason I'm posting this is to request a review for patch 1. Once
everything seems OK, these two patches are going to be part of a larger
set (again, destined for linux-mm) that introduces FOLL_PIN and renames
some get_user_pages() cases to pin_user_pages(). I'm doing this a little
before -rc1, because it's a small and easy thing to get out of the way
early.

These are ultimately destined to go in via linux-mm (as opposed to
linux-rdma), in order to change some names in just one kernel release
cycle.

The first version of this patchset only had the IB/umem changes
(patch 2), and I also lacked a runtime Infiniband test, so
Leon Romanovsky reported a failure [1]. Patch 1 fixes that failure.

Since v1, I have (finally!) set up a basic two-node Infiniband system,
and as a result, I've reproduced the failure that Leon saw, via a
trivial run of "ib_write_bw", and confirmed that it's fixed in this
new patchset. Sorry it took me so long to do that; I am going to vaguely
blame "OFED" for the delay. :)

Entertaining IB side note: Jason: sure enough, as you mentioned, the
OFED installation did in fact hopelessly mangle my system. Once I went
back to a clean distro installation without all those OFED goodies,
everything Just Worked on the first try. Much simpler to understand,
too. ha.

This applies to today's linux.git: commit aedc0650f913 ("Merge tag
'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm").

[1] https://lore.kernel.org/r/20191124100724.GH136476@unreal

John Hubbard (2):
mm/gup: allow FOLL_FORCE for get_user_pages_fast()
IB/umem: use get_user_pages_fast() to pin DMA pages

drivers/infiniband/core/umem.c | 17 ++++++-----------
mm/gup.c | 3 ++-
2 files changed, 8 insertions(+), 12 deletions(-)

--
2.24.0