• Jinjiang Tu's avatar
    selftest/mm: ksm_functional_tests: refactor mmap_and_merge_range() · 7abaacb8
    Jinjiang Tu authored
    In order to extend test_prctl_fork() and test_prctl_fork_exec() to make
    sure that deduplication really happens, mmap_and_merge_range() needs to be
    refactored.
    
    Firstly, mmap_and_merge_range() will be called with no need to call enable
    KSM by madvise or prctl.  So, switch the 'bool use_prctl' parameter to
    enum ksm_merge_mode.
    
    Secondly, mmap_and_merge_range() will be called in child process in the
    two testcases, it isn't appropriate to call ksft_test_result_{fail, skip},
    because the global variables ksft_{fail, skip} aren't consistent with the
    parent process.  Thus, convert calls of ksft_test_result_{fail, skip} to
    ksft_print_msg(), return differrent error according to the two cases, and
    rename mmap_and_merge_range() to __mmap_and_merge_range().  For existing
    callers, introduce new mmap_and_merge_range() to handle different return
    values of __mmap_and_merge_range().
    
    Link: https://lkml.kernel.org/r/20240328111010.1502191-3-tujinjiang@huawei.comSigned-off-by: default avatarJinjiang Tu <tujinjiang@huawei.com>
    Suggested-by: default avatarDavid Hildenbrand <david@redhat.com>
    Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Nanyong Sun <sunnanyong@huawei.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Stefan Roesch <shr@devkernel.io>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    7abaacb8
ksm_functional_tests.c 16.2 KB