mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
selftests/mm: add separate UFFDIO_MOVE test for PMD splitting
Add a test for UFFDIO_MOVE ioctl operating on a hugepage which has to be split because destination is marked with MADV_NOHUGEPAGE. With this we cover all 3 cases: normal page move, hugepage move, hugepage splitting before move. Link: https://lkml.kernel.org/r/20231230025636.2477429-1-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>
This commit is contained in:
parent
8c9eea721a
commit
a5b7620bab
@ -1199,6 +1199,16 @@ static void uffd_move_test(uffd_test_args_t *targs)
|
||||
|
||||
static void uffd_move_pmd_test(uffd_test_args_t *targs)
|
||||
{
|
||||
if (madvise(area_dst, nr_pages * page_size, MADV_HUGEPAGE))
|
||||
err("madvise(MADV_HUGEPAGE) failure");
|
||||
uffd_move_test_common(targs, read_pmd_pagesize(),
|
||||
uffd_move_pmd_handle_fault);
|
||||
}
|
||||
|
||||
static void uffd_move_pmd_split_test(uffd_test_args_t *targs)
|
||||
{
|
||||
if (madvise(area_dst, nr_pages * page_size, MADV_NOHUGEPAGE))
|
||||
err("madvise(MADV_NOHUGEPAGE) failure");
|
||||
uffd_move_test_common(targs, read_pmd_pagesize(),
|
||||
uffd_move_pmd_handle_fault);
|
||||
}
|
||||
@ -1330,6 +1340,13 @@ uffd_test_case_t uffd_tests[] = {
|
||||
.uffd_feature_required = UFFD_FEATURE_MOVE,
|
||||
.test_case_ops = &uffd_move_test_pmd_case_ops,
|
||||
},
|
||||
{
|
||||
.name = "move-pmd-split",
|
||||
.uffd_fn = uffd_move_pmd_split_test,
|
||||
.mem_targets = MEM_ANON,
|
||||
.uffd_feature_required = UFFD_FEATURE_MOVE,
|
||||
.test_case_ops = &uffd_move_test_pmd_case_ops,
|
||||
},
|
||||
{
|
||||
.name = "wp-fork",
|
||||
.uffd_fn = uffd_wp_fork_test,
|
||||
|
Loading…
Reference in New Issue
Block a user