aboutsummaryrefslogtreecommitdiff
path: root/mm/memcontrol.c
diff options
context:
space:
mode:
authorGravatar Breno Leitao <leitao@debian.org> 2024-01-05 07:54:19 -0800
committerGravatar Andrew Morton <akpm@linux-foundation.org> 2024-02-22 10:24:41 -0800
commit8c407e05a9b3bd851c5731387033edfb362b8b98 (patch)
treee17030e8859f2e63dc36a808f87b51565df6b7d1 /mm/memcontrol.c
parentmm: kmsan: remove runtime checks from kmsan_unpoison_memory() (diff)
downloadlinux-8c407e05a9b3bd851c5731387033edfb362b8b98.tar.gz
linux-8c407e05a9b3bd851c5731387033edfb362b8b98.tar.bz2
linux-8c407e05a9b3bd851c5731387033edfb362b8b98.zip
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 'mm/memcontrol.c')
0 files changed, 0 insertions, 0 deletions