summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/mm/compaction_test.c
diff options
context:
space:
mode:
authorBreno Leitao <leitao@debian.org>2024-01-05 18:54:19 +0300
committerAndrew Morton <akpm@linux-foundation.org>2024-02-22 21:24:41 +0300
commit8c407e05a9b3bd851c5731387033edfb362b8b98 (patch)
treee17030e8859f2e63dc36a808f87b51565df6b7d1 /tools/testing/selftests/mm/compaction_test.c
parentd749cc7547bb46be73da848576ea155daf8186f3 (diff)
downloadlinux-8c407e05a9b3bd851c5731387033edfb362b8b98.tar.xz
selftests/mm: new test that steals pages
This test stresses the race between of madvise(DONTNEED), a page fault and a parallel huge page mmap, which should fail due to lack of available page available for mapping. This test case must run on a system with one and only one huge page available. # echo 1 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages During setup, the test allocates the only available page, and starts three threads: - thread 1: * madvise(MADV_DONTNEED) on the allocated huge page - thread 2: * Write to the allocated huge page - thread 3: * Tries to allocated (steal) an extra huge page (which is not available) thread 3 should never succeed in the allocation, since the only huge page was never unmapped, and should be reserved. Touching the old page after thread3 allocation will raise a SIGBUS. Link: https://lkml.kernel.org/r/20240105155419.1939484-2-leitao@debian.org Signed-off-by: Breno Leitao <leitao@debian.org> Cc: Mike Rapoport (IBM) <rppt@kernel.org> Cc: Muchun Song <songmuchun@bytedance.com> Cc: Rik van Riel <riel@surriel.com> Cc: Shuah Khan <shuah@kernel.org> Cc: Vegard Nossum <vegard.nossum@oracle.com> Cc: Yang Shi <shy828301@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'tools/testing/selftests/mm/compaction_test.c')
0 files changed, 0 insertions, 0 deletions