• David Hildenbrand's avatar
    selftest/mm: ksm_functional_tests: test in mmap_and_merge_range() if anything got merged · 42096aa2
    David Hildenbrand authored
    Let's extend mmap_and_merge_range() to test if anything in the current
    process was merged. range_maps_duplicates() is too unreliable for that
    use case, so instead look at KSM stats.
    
    Trigger a complete unmerge first, to cleanup the stable tree and
    stabilize accounting of merged pages.
    
    Note that we're using /proc/self/ksm_merging_pages instead of
    /proc/self/ksm_stat, because that one is available in more existing
    kernels.
    
    If /proc/self/ksm_merging_pages can't be opened, we can't perform any
    checks and simply skip them.
    
    We have to special-case the shared zeropage for now. But the only user
    -- test_unmerge_zero_pages() -- performs its own merge checks.
    
    Link: https://lkml.kernel.org/r/20230803143208.383663-7-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Acked-by: default avatarPeter Xu <peterx@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: liubo <liubo254@huawei.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Mel Gorman <mgorman@techsingularity.net>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    42096aa2
ksm_functional_tests.c 12.8 KB