OrangePi_CM5/tools/testing/selftests/vm
Alistair Popple 6292503700 mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault
commit 87c01d57fa23de82fff593a7d070933d08755801 upstream.

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.

Link: https://lkml.kernel.org/r/20211104012001.2555676-1-apopple@nvidia.com
Fixes: da4c3c735e ("mm/hmm/mirror: helper to snapshot CPU page table")
Signed-off-by: Alistair Popple <apopple@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Zi Yan <ziy@nvidia.com>
Cc: Ralph Campbell <rcampbell@nvidia.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-27 10:54:36 +01:00
..
.gitignore selftests/x86/pkeys: move selftests to arch-neutral directory 2020-06-04 19:06:26 -07:00
Makefile selftests/vm: fix out-of-tree build 2021-04-10 13:36:09 +02:00
charge_reserved_hugetlb.sh hugetlb_cgroup: add hugetlb_cgroup reservation tests 2020-04-02 09:35:32 -07:00
compaction_test.c selftests/vm: 8x compaction_test speedup 2020-10-13 18:38:34 -07:00
config selftests: vm: add fragment CONFIG_GUP_BENCHMARK 2020-09-01 14:29:20 +02:00
gup_benchmark.c linux-kselftest-fixes-5.10-rc1 2020-10-14 14:23:51 -07:00
hmm-tests.c mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault 2022-01-27 10:54:36 +01:00
hugepage-mmap.c
…
hugepage-shm.c
…
hugetlb_reparenting_test.sh hugetlb_cgroup: add hugetlb_cgroup reservation tests 2020-04-02 09:35:32 -07:00
khugepaged.c khugepaged: selftests: fix timeout condition in wait_for_scan() 2020-06-10 19:14:17 -07:00
map_fixed_noreplace.c
…
map_hugetlb.c selftests/vm: fix display of page size in map_hugetlb 2020-09-19 13:13:39 -07:00
map_populate.c
…
mlock-random-test.c
…
mlock2-tests.c
…
mlock2.h
…
mremap_dontunmap.c tools/testing/selftests/vm: remove duplicate headers 2020-06-04 19:06:27 -07:00
on-fault-limit.c
…
pkey-helpers.h selftests/vm/pkeys: introduce a sub-page allocator 2020-06-04 19:06:27 -07:00
pkey-powerpc.h selftests: vm: pkeys: use the correct page size on powerpc 2020-06-04 19:06:27 -07:00
pkey-x86.h selftests/vm/pkeys: introduce a sub-page allocator 2020-06-04 19:06:27 -07:00
protection_keys.c selftests/vm/pkeys: refill shadow register after implicit kernel write 2021-07-14 16:56:52 +02:00
run_vmtests mm/hmm/test: add selftests for HMM 2020-05-19 16:48:31 -03:00
test_hmm.sh mm/hmm/test: add selftests for HMM 2020-05-19 16:48:31 -03:00
test_vmalloc.sh
…
thuge-gen.c
…
transhuge-stress.c
…
userfaultfd.c selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c 2021-08-04 12:46:39 +02:00
va_128TBswitch.c
…
virtual_address_range.c
…
write_hugetlb_memory.sh hugetlb_cgroup: add hugetlb_cgroup reservation tests 2020-04-02 09:35:32 -07:00
write_to_hugetlbfs.c selftests/vm/write_to_hugetlbfs.c: fix unused variable warning 2020-05-23 10:26:31 -07:00