Re: [PATCH] mm/hmm.c: Allow VM_MIXEDMAP to work with hmm_range_fault

From: Alistair Popple
Date: Mon Nov 08 2021 - 02:58:12 EST


On Friday, 5 November 2021 11:25:57 PM AEDT Jason Gunthorpe wrote:
> On Thu, Nov 04, 2021 at 12:20:01PM +1100, Alistair Popple wrote:
> > hmm_range_fault() can be used instead of get_user_pages() for devices
> > which allow faulting however unlike get_user_pages() it will return an
> > error when used on a VM_MIXEDMAP range.
> >
> > To make hmm_range_fault() more closely match get_user_pages() remove
> > this restriction. This requires dealing with the !ARCH_HAS_PTE_SPECIAL
> > case in hmm_vma_handle_pte(). Rather than replicating the logic of
> > vm_normal_page() call it directly and do a check for the zero pfn
> > similar to what get_user_pages() currently does.
> >
> > Also add a test to hmm selftest to verify functionality.
>
> Please add a fixes line

This has been the case since hmm_vma_get_pfns() was first introduced. Therefore
the fixes line is:

Fixes: da4c3c735ea4 ("mm/hmm/mirror: helper to snapshot CPU page table")

Should I send a v2 adding that tag or does Andrew normally pick these up along
with the Reviewed-by?

Thanks.

> > Signed-off-by: Alistair Popple <apopple@xxxxxxxxxx>
> > ---
> > lib/test_hmm.c | 24 +++++++++++++++
> > mm/hmm.c | 5 +--
> > tools/testing/selftests/vm/hmm-tests.c | 42 ++++++++++++++++++++++++++
> > 3 files changed, 69 insertions(+), 2 deletions(-)
>
> Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
>
> Jason
>