Re: [PATCH v4 0/6] mm/migrate: avoid device private invalidations

From: Jason Gunthorpe
Date: Tue Jul 28 2020 - 15:22:42 EST

On Thu, Jul 23, 2020 at 03:29:58PM -0700, Ralph Campbell wrote:
> The goal for this series is to avoid device private memory TLB
> invalidations when migrating a range of addresses from system
> memory to device private memory and some of those pages have already
> been migrated. The approach taken is to introduce a new mmu notifier
> invalidation event type and use that in the device driver to skip
> invalidation callbacks from migrate_vma_setup(). The device driver is
> also then expected to handle device MMU invalidations as part of the
> migrate_vma_setup(), migrate_vma_pages(), migrate_vma_finalize() process.
> Note that this is opt-in. A device driver can simply invalidate its MMU
> in the mmu notifier callback and not handle MMU invalidations in the
> migration sequence.
> This series is based on Jason Gunthorpe's HMM tree (linux-5.8.0-rc4).
> Also, this replaces the need for the following two patches I sent:
> ("mm: fix migrate_vma_setup() src_owner and normal pages")
> ("nouveau: fix mixed normal and device private page migration")
> Changes in v4:
> Added reviewed-by from Bharata B Rao.
> Removed dead code checking for source device private page in lib/test_hmm.c
> dmirror_migrate_alloc_and_copy() since the source filter flag guarantees
> that.
> Added patch 6 to remove a redundant invalidation in migrate_vma_pages().
> Changes in v3:
> Changed the direction field "dir" to a "flags" field and renamed
> src_owner to pgmap_owner.
> Fixed a locking issue in nouveau for the migration invalidation.
> Added a HMM selftest test case to exercise the HMM test driver
> invalidation changes.
> Removed reviewed-by Bharata B Rao since this version is moderately
> changed.
> Changes in v2:
> Rebase to Jason Gunthorpe's HMM tree.
> Added reviewed-by from Bharata B Rao.
> Rename the mmu_notifier_range::data field to migrate_pgmap_owner as
> suggested by Jason Gunthorpe.
> Ralph Campbell (6):
> 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

Applied to the hmm tree with the modification I noted, I think all the
comments in the past versions were addressed. I will accumulate more
Reviews if any come.

> mm/migrate: remove range invalidation in migrate_vma_pages()

Let's have some discussion on this new patch please, at least I don't
follow it yet.