mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
selftests/mm: gup_tests: option to GUP all pages in a single call
We recently missed detecting an issue during early testing because the default (!all) tests would not trigger it and even when running "all" tests it only would happen sometimes because of races. So let's allow for an easy way to specify "GUP all pages in a single call", extend the test matrix and extend our default (!all) tests. By GUP'ing all pages in a single call, with the default size of 128MiB we'll cover multiple leaf page tables / PMDs on architectures with sane THP sizes. Link: https://lkml.kernel.org/r/20250910093051.1693097-1-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Cc: Jason Gunthorpe <jgg@ziepe.ca> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Peter Xu <peterx@redhat.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Mike Rapoport <rppt@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Shuah Khan <shuah@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
9d003dec97
commit
a5883fa942
|
|
@ -139,6 +139,8 @@ int main(int argc, char **argv)
|
|||
break;
|
||||
case 'n':
|
||||
nr_pages = atoi(optarg);
|
||||
if (nr_pages < 0)
|
||||
nr_pages = size / psize();
|
||||
break;
|
||||
case 't':
|
||||
thp = 1;
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ run_gup_matrix() {
|
|||
# -n: How many pages to fetch together? 512 is special
|
||||
# because it's default thp size (or 2M on x86), 123 to
|
||||
# just test partial gup when hit a huge in whatever form
|
||||
for num in "-n 1" "-n 512" "-n 123"; do
|
||||
for num in "-n 1" "-n 512" "-n 123" "-n -1"; do
|
||||
CATEGORY="gup_test" run_test ./gup_test \
|
||||
$huge $test_cmd $write $share $num
|
||||
done
|
||||
|
|
@ -314,9 +314,11 @@ if $RUN_ALL; then
|
|||
run_gup_matrix
|
||||
else
|
||||
# get_user_pages_fast() benchmark
|
||||
CATEGORY="gup_test" run_test ./gup_test -u
|
||||
CATEGORY="gup_test" run_test ./gup_test -u -n 1
|
||||
CATEGORY="gup_test" run_test ./gup_test -u -n -1
|
||||
# pin_user_pages_fast() benchmark
|
||||
CATEGORY="gup_test" run_test ./gup_test -a
|
||||
CATEGORY="gup_test" run_test ./gup_test -a -n 1
|
||||
CATEGORY="gup_test" run_test ./gup_test -a -n -1
|
||||
fi
|
||||
# Dump pages 0, 19, and 4096, using pin_user_pages:
|
||||
CATEGORY="gup_test" run_test ./gup_test -ct -F 0x1 0 19 0x1000
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user