mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
selftests/mm: ensure uffd-wp-mremap gets pages of each size
This test allocates a page of every available size and doesn't have any SKIP logic if the allocation fails. So, ensure it's available and skip the test if we can't do so. Link: https://lkml.kernel.org/r/20250311-mm-selftests-v4-10-dec210a658f5@google.com Signed-off-by: Brendan Jackman <jackmanb@google.com> Cc: Dev Jain <dev.jain@arm.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Mateusz Guzik <mjguzik@gmail.com> Cc: Shuah Khan <shuah@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
e9269b2cc4
commit
f896c6de83
|
|
@ -325,9 +325,30 @@ CATEGORY="userfaultfd" run_test ${uffd_stress_bin} hugetlb "$half_ufd_size_MB" 3
|
|||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} hugetlb-private "$half_ufd_size_MB" 32
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} shmem 20 16
|
||||
CATEGORY="userfaultfd" run_test ${uffd_stress_bin} shmem-private 20 16
|
||||
CATEGORY="userfaultfd" run_test ./uffd-wp-mremap
|
||||
# uffd-wp-mremap requires at least one page of each size.
|
||||
have_all_size_hugepgs=true
|
||||
declare -A nr_size_hugepgs
|
||||
for f in /sys/kernel/mm/hugepages/**/nr_hugepages; do
|
||||
old=$(cat $f)
|
||||
nr_size_hugepgs["$f"]="$old"
|
||||
if [ "$old" == 0 ]; then
|
||||
echo 1 > "$f"
|
||||
fi
|
||||
if [ $(cat "$f") == 0 ]; then
|
||||
have_all_size_hugepgs=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
if $have_all_size_hugepgs; then
|
||||
CATEGORY="userfaultfd" run_test ./uffd-wp-mremap
|
||||
else
|
||||
echo "# SKIP ./uffd-wp-mremap"
|
||||
fi
|
||||
|
||||
#cleanup
|
||||
for f in "${!nr_size_hugepgs[@]}"; do
|
||||
echo "${nr_size_hugepgs["$f"]}" > "$f"
|
||||
done
|
||||
echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages
|
||||
|
||||
CATEGORY="compaction" run_test ./compaction_test
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user