twx-linux/tools/testing/selftests/mm
Dev Jain 536ab838a5 selftests/mm: relax test to fail after 100 migration failures
It was recently observed at [1] that during the folio unmapping stage of
migration, when the PTEs are cleared, a racing thread faulting on that
folio may increase the refcount of the folio, sleep on the folio lock (the
migration path has the lock), and migration ultimately fails when
asserting the actual refcount against the expected.  Thereby, the
migration selftest fails on shared-anon mappings.  The above enforces the
fact that migration is a best-effort service, therefore, it is wrong to
fail the test for just a single failure; hence, fail the test after 100
consecutive failures (where 100 is still a subjective choice).  Note that,
this has no effect on the execution time of the test since that is
controlled by a timeout.

[1] https://lore.kernel.org/all/20240801081657.1386743-1-dev.jain@arm.com/

Link: https://lkml.kernel.org/r/20240830051609.4037834-1-dev.jain@arm.com
Signed-off-by: Dev Jain <dev.jain@arm.com>
Suggested-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Tested-by: Ryan Roberts <ryan.roberts@arm.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@kernel.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Barry Song <baohua@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christoph Lameter <cl@gentwo.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Gavin Shan <gshan@redhat.com>
Cc: "Huang, Ying" <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Lance Yang <ioworker0@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Cc: Yang Shi <yang@os.amperecomputing.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-09-09 16:39:05 -07:00
..
.gitignore Random number generator updates for Linux 6.11-rc1. 2024-07-24 10:29:50 -07:00
charge_reserved_hugetlb.sh selftests/mm: fix charge_reserved_hugetlb.sh test 2024-09-03 21:15:46 -07:00
check_config.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
compaction_test.c selftests/mm: compaction_test: fix off by one in check_compaction() 2024-08-15 22:16:15 -07:00
config selftests: mm: add pagemap ioctl tests 2023-10-18 14:34:13 -07:00
cow.c The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
droppable.c mm: add MAP_DROPPABLE for designating always lazily freeable mappings 2024-07-19 20:22:12 +02:00
gup_longterm.c The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
gup_test.c selftests/mm: fix build warnings on ppc64 2024-05-24 11:55:06 -07:00
hmm-tests.c selftests: avoid using SKIP(exit()) in harness fixure setup 2024-03-05 19:25:36 -08:00
hugepage-mmap.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
hugepage-mremap.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
hugepage-shm.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
hugepage-vmemmap.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
hugetlb_dio.c selftest: mm: Test if hugepage does not get leaked during __bio_release_pages() 2024-07-03 19:29:59 -07:00
hugetlb_fault_after_madv.c selftests/mm: add a new test for madv and hugetlb 2023-10-18 14:34:16 -07:00
hugetlb_madv_vs_map.c selftests/mm: hugetlb_madv_vs_map: avoid test skipping by querying hugepage size at runtime 2024-05-11 15:41:37 -07:00
hugetlb_reparenting_test.sh selftests/mm: save and restore nr_hugepages value 2024-02-22 15:38:55 -08:00
hugetlb-madvise.c selftests/mm: skip the hugetlb-madvise tests on unmet hugepage requirements 2024-03-12 13:07:18 -07:00
hugetlb-read-hwpoison.c selftests/mm: add tests for HWPOISON hugetlbfs read 2023-08-18 10:12:27 -07:00
hugetlb-soft-offline.c selftest/mm: test enable_soft_offline behaviors 2024-07-04 18:06:00 -07:00
khugepaged.c selftests: mm: support shmem mTHP collapse testing 2024-09-03 21:15:39 -07:00
ksm_functional_tests.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
ksm_tests.c selftests/mm: ksm_tests should only MADV_HUGEPAGE valid memory 2024-01-25 23:52:21 -08:00
madv_populate.c selftests/mm: ksft_exit functions do not return 2024-05-06 13:57:20 -06:00
Makefile selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
map_fixed_noreplace.c selftests: mm: make map_fixed_noreplace test names stable 2024-06-15 10:43:07 -07:00
map_hugetlb.c selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
map_populate.c selftests/mm: map_populate: conform test to TAP format output 2024-02-22 10:24:48 -08:00
mdwe_test.c Revert "selftests/harness: remove use of LINE_MAX" 2024-05-19 14:36:20 -07:00
memfd_secret.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
migration.c selftests/mm: relax test to fail after 100 migration failures 2024-09-09 16:39:05 -07:00
mkdirty.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
mlock2-tests.c selftests/mm: parse VMA range in one go 2024-04-25 20:56:07 -07:00
mlock2.h selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
mlock-random-test.c selftests/mm: mlock-random-test: conform test to TAP format output 2024-02-22 10:24:48 -08:00
mrelease_test.c selftests/mm: mrelease_test: conform test to TAP format output 2024-02-22 10:24:49 -08:00
mremap_dontunmap.c selftests/mm: mremap_dontunmap: conform test to TAP format output 2024-02-22 10:24:49 -08:00
mremap_test.c minmax: make generic MIN() and MAX() macros available everywhere 2024-07-28 15:49:18 -07:00
mseal_helpers.h selftests/mm: mseal, self_elf: rename TEST_END_CHECK to REPORT_TEST_PASS 2024-07-03 19:30:07 -07:00
mseal_test.c selftests/mm: add more mseal traversal tests 2024-09-03 21:15:42 -07:00
on-fault-limit.c selftests/mm: run_vmtests: remove sudo and conform to tap 2024-02-22 15:38:55 -08:00
pagemap_ioctl.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
pkey-helpers.h selftests/mm: Substitute attribute with a macro 2023-10-13 14:08:36 -06:00
pkey-powerpc.h selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
pkey-x86.h selftests: mm: remove duplicate unneeded defines 2023-06-19 16:19:25 -07:00
protection_keys.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
run_vmtests.sh selftests/mm: remove unnecessary ia64 code and comment 2024-09-03 21:15:38 -07:00
seal_elf.c selftests/mm: mseal, self_elf: rename TEST_END_CHECK to REPORT_TEST_PASS 2024-07-03 19:30:07 -07:00
settings selftests/mm: run all tests from run_vmtests.sh 2023-08-18 10:12:43 -07:00
soft-dirty.c selftests/mm: ksft_exit functions do not return 2024-05-06 13:57:20 -06:00
split_huge_page_test.c mm: selftest to verify zero-filled pages are mapped to zeropage 2024-09-09 16:39:03 -07:00
test_hmm.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
test_vmalloc.sh selftests/mm: give scripts execute permission 2023-07-14 09:24:31 -07:00
thp_settings.c selftests: mm: support shmem mTHP collapse testing 2024-09-03 21:15:39 -07:00
thp_settings.h selftests: mm: support shmem mTHP collapse testing 2024-09-03 21:15:39 -07:00
thuge-gen.c selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk 2024-07-10 12:14:51 -07:00
transhuge-stress.c selftests/mm: transhuge-stress: conform to TAP format output 2024-02-22 10:24:49 -08:00
uffd-common.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
uffd-common.h selftests/mm: fix build warnings on ppc64 2024-05-24 11:55:06 -07:00
uffd-stress.c mm: turn off test_uffdio_wp if CONFIG_PTE_MARKER_UFFD_WP is not configured. 2024-07-04 18:05:58 -07:00
uffd-unit-tests.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
va_high_addr_switch.c selftests/mm: skip test for non-LPA2 and non-LVA systems 2024-07-26 14:33:10 -07:00
va_high_addr_switch.sh selftests/mm: va_high_addr_switch: reduce test noise 2024-07-03 19:29:56 -07:00
virtual_address_range.c selftests/mm: confirm VA exhaustion without reliance on correctness of mmap() 2024-04-25 20:56:01 -07:00
vm_util.c mm: selftest to verify zero-filled pages are mapped to zeropage 2024-09-09 16:39:03 -07:00
vm_util.h mm: selftest to verify zero-filled pages are mapped to zeropage 2024-09-09 16:39:03 -07:00
write_hugetlb_memory.sh selftests/mm: switch to bash from sh 2024-01-25 23:52:20 -08:00
write_to_hugetlbfs.c selftests/mm: fix charge_reserved_hugetlb.sh test 2024-09-03 21:15:46 -07:00