Skip to contentSkip to conversation

Please pull hmm changes

GIT PULL Merged Jason Gunthorpe 2 participants 2 messages Aug 4, 2020 – Aug 5, 2020 Memory management

lore
Share & tools
lore
#0 lore raw

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:

https://lore.kernel.org/linux-next/[email protected]/

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;
++      mig.flags = MIGRATE_VMA_SELECT_DEVICE_PRIVATE;

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.

Thanks,
Jason

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(-)