Add tests for new UFFDIO_MOVE ioctl which uses uffd to move source into destination buffer while checking the contents of both after the move. After the operation the content of the destination buffer should match the original source buffer's content while the source buffer should be zeroed. Separate tests are designed for PMD aligned and unaligned cases because they utilize different code paths in the kernel. Link: https://lkml.kernel.org/r/20231206103702.3873743-6-surenb@google.com Signed-off-by: Suren Baghdasaryan <surenb@google.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Axel Rasmussen <axelrasmussen@google.com> Cc: Brian Geffon <bgeffon@google.com> Cc: Christian Brauner <brauner@kernel.org> Cc: David Hildenbrand <david@redhat.com> Cc: Hugh Dickins <hughd@google.com> Cc: Jann Horn <jannh@google.com> Cc: Kalesh Singh <kaleshsingh@google.com> Cc: Liam R. Howlett <Liam.Howlett@oracle.com> Cc: Lokesh Gidra <lokeshgidra@google.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport (IBM) <rppt@kernel.org> Cc: Nicolas Geoffray <ngeoffray@google.com> Cc: Peter Xu <peterx@redhat.com> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Shuah Khan <shuah@kernel.org> Cc: ZhangPeng <zhangpeng362@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> (cherry picked from commit a2bf6a9ca80532b75f8f8b6a1cd75ef7e5150576) Conflicts: tools/testing/selftests/mm/uffd-common.c tools/testing/selftests/mm/uffd-common.h tools/testing/selftests/mm/uffd-unit-tests.c tools/testing/selftests/vm/userfaultfd.c 1. Removed errmsg parameter from prevent_hugepages() and post_hugepages() 2. Removed uffd_test_args parameter from uffd_move_* functions 3. Added uffd_test_case_ops parameter in uffd_move_test_common() 4. Added userfaultfd_move_test() for all 'move' tests, called from userfaultfd_stress() 5. Added 'test_uffdio_move' global bool variable, which is set to true only when testing anon mappings 6. Added call to uffd_test_ctx_init() and uffd_test_ctx_clear() in uffd_move_test_common() 7. Replaced uffd_args with uffd_stats 8. Converted return type of uffd_move_test() and uffd_move_pmd_test() to `int` 9. Added uffd_test_page_fault_handler as uffd_args doesn't exist. uffd_poll_thread() checks if it is NULL then calls uffd_handle_page_fault(). 10. Replaced uffd_register() (isn't defined on 6.1) with UFFDIO_REGISTER ioctl call 11. Added printf() calls to log when the test is starting and finishing. 12. Change return type of uffd_move_test_common() to int. Bug: 274911254 Change-Id: I1c68445d9c64533aab0ba27c2e010347d0807981 Signed-off-by: Lokesh Gidra <lokeshgidra@google.com> |
||
|---|---|---|
| .. | ||
| crypto/chacha20-s390 | ||
| cxl | ||
| fault-injection | ||
| ktest | ||
| kunit | ||
| memblock | ||
| nvdimm | ||
| radix-tree | ||
| scatterlist | ||
| selftests | ||
| vsock | ||