[GIT PULL] Please pull hmm changes

From: Jason Gunthorpe
Date: Tue Aug 04 2020 - 11:06:25 EST

Hi Linus,

Ralph has been working on nouveau's use of hmm_range_fault() and migrate_vma()
which resulted in this small series of improvements.

There are two expected conflicts. Conflict with the kvm-ppc tree:


This is because the kvm-ppc tree moved __kvmppc_svm_page_out() within the
file. To resolve the diff from 5143192cd410 ("mm/migrate: add a flags
parameter to migrate_vma") needs to be applied to the new location:

- mig.src_owner = &kvmppc_uvmem_pgmap;
++ mig.pgmap_owner = &kvmppc_uvmem_pgmap;

There is an accidental conflict with the DRM tree, due to a confusion the same
patch got applied to both trees and we couldn't undo it in time. Please take
the hmm version of the resolution.

Since neither DRM or kvm-ppc have been merged by you, I've made a very hacky
for-linus-hmm-merged tag with my resolutions for your reference.


The following changes since commit dcb7fd82c75ee2d6e6f9d8cc71c52519ed52e258:

Linux 5.8-rc4 (2020-07-05 16:20:22 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus-hmm

for you to fetch changes up to 7d17e83abec1be3355260b3e4812044c65c32907:

mm/hmm/test: use the new migration invalidation (2020-07-28 16:20:33 -0300)

hmm related patches for 5.9

This series adds reporting of the page table order from hmm_range_fault()
and some optimization of migrate_vma():

- Report the size of the page table mapping out of hmm_range_fault(). This
makes it easier to establish a large/huge/etc mapping in the device's
page table.

- Allow devices to ignore the invalidations during migration in cases
where the migration is not going to change pages. For instance migrating
pages to a device does not require the device to invalidate pages
already in the device.

- Update nouveau and hmm_tests to use the above

Ralph Campbell (10):
mm/hmm: provide the page mapping order in hmm_range_fault()
mm/hmm: add tests for hmm_pfn_to_map_order()
nouveau/hmm: fault one page at a time
nouveau: fix mapping 2MB sysmem pages
nouveau/hmm: support mapping large sysmem pages
nouveau: fix storing invalid ptes
mm/migrate: add a flags parameter to migrate_vma
mm/notifier: add migration invalidation type
nouveau/svm: use the new migration invalidation
mm/hmm/test: use the new migration invalidation

arch/powerpc/kvm/book3s_hv_uvmem.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 19 +-
drivers/gpu/drm/nouveau/nouveau_svm.c | 257 +++++++++------------
drivers/gpu/drm/nouveau/nouveau_svm.h | 13 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 5 +-
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.c | 91 +++++++-
include/linux/hmm.h | 24 +-
include/linux/migrate.h | 16 +-
include/linux/mmu_notifier.h | 6 +
lib/test_hmm.c | 47 ++--
lib/test_hmm_uapi.h | 4 +
mm/hmm.c | 16 +-
mm/migrate.c | 14 +-
tools/testing/selftests/vm/hmm-tests.c | 94 +++++++-
14 files changed, 410 insertions(+), 200 deletions(-)

Attachment: signature.asc
Description: PGP signature