Re: [PATCH 00/10] HMM updates for 5.1

From: Ralph Campbell
Date: Fri Feb 22 2019 - 18:31:21 EST



On 1/29/19 8:54 AM, jglisse@xxxxxxxxxx wrote:
From: JÃrÃme Glisse <jglisse@xxxxxxxxxx>

This patchset improves the HMM driver API and add support for hugetlbfs
and DAX mirroring. The improvement motivation was to make the ODP to HMM
conversion easier [1]. Because we have nouveau bits schedule for 5.1 and
to avoid any multi-tree synchronization this patchset adds few lines of
inline function that wrap the existing HMM driver API to the improved
API. The nouveau driver was tested before and after this patchset and it
builds and works on both case so there is no merging issue [2]. The
nouveau bit are queue up for 5.1 so this is why i added those inline.

If this get merge in 5.1 the plans is to merge the HMM to ODP in 5.2 or
5.3 if testing shows any issues (so far no issues has been found with
limited testing but Mellanox will be running heavier testing for longer
time).

To avoid spamming mm i would like to not cc mm on ODP or nouveau patches,
however if people prefer to see those on mm mailing list then i can keep
it cced.

This is also what i intend to use as a base for AMD and Intel patches
(v2 with more thing of some rfc which were already posted in the past).

[1] https://cgit.freedesktop.org/~glisse/linux/log/?h=odp-hmm
[2] https://cgit.freedesktop.org/~glisse/linux/log/?h=hmm-for-5.1

Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Felix Kuehling <Felix.Kuehling@xxxxxxx>
Cc: Christian KÃnig <christian.koenig@xxxxxxx>
Cc: Ralph Campbell <rcampbell@xxxxxxxxxx>
Cc: John Hubbard <jhubbard@xxxxxxxxxx>
Cc: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
Cc: Dan Williams <dan.j.williams@xxxxxxxxx>

JÃrÃme Glisse (10):
mm/hmm: use reference counting for HMM struct
mm/hmm: do not erase snapshot when a range is invalidated
mm/hmm: improve and rename hmm_vma_get_pfns() to hmm_range_snapshot()
mm/hmm: improve and rename hmm_vma_fault() to hmm_range_fault()
mm/hmm: improve driver API to work and wait over a range
mm/hmm: add default fault flags to avoid the need to pre-fill pfns
arrays.
mm/hmm: add an helper function that fault pages and map them to a
device
mm/hmm: support hugetlbfs (snap shoting, faulting and DMA mapping)
mm/hmm: allow to mirror vma of a file on a DAX backed filesystem
mm/hmm: add helpers for driver to safely take the mmap_sem

include/linux/hmm.h | 290 ++++++++++--
mm/hmm.c | 1060 +++++++++++++++++++++++++++++--------------
2 files changed, 983 insertions(+), 367 deletions(-)


I have been testing this patch series in addition to [1] with some
success. I wouldn't go as far as saying it is thoroughly tested
but you can add:

Reviewed-by: Ralph Campbell <rcampbell@xxxxxxxxxx>


[1] https://marc.info/?l=linux-mm&m=155060669514459&w=2
("[PATCH v5 0/9] mmu notifier provide context informations")