Files
linux/tools/testing/selftests/mm/.gitignore
Zi Yan 224f129261 selftests/mm: add folio_split() and filemap_get_entry() race test
The added folio_split_race_test is a modified C port of the race condition
test from [1].  The test creates shmem huge pages, where the main thread
punches holes in the shmem to cause folio_split() in the kernel and a set
of 16 threads reads the shmem to cause filemap_get_entry() in the kernel. 
filemap_get_entry() reads the folio and xarray split by folio_split()
locklessly.  The original test[2] is written in rust and uses memfd (shmem
backed).  This C port uses shmem directly and use a single process.

Note: the initial rust to C conversion is done by Cursor.

Link: https://lore.kernel.org/all/CAKNNEtw5_kZomhkugedKMPOG-sxs5Q5OLumWJdiWXv+C9Yct0w@mail.gmail.com/ [1]
Link: https://github.com/dfinity/thp-madv-remove-test [2]
Link: https://lkml.kernel.org/r/20260323163717.184107-1-ziy@nvidia.com
Co-developed-by: Bas van Dijk <bas@dfinity.org>
Signed-off-by: Bas van Dijk <bas@dfinity.org>
Co-developed-by: Adam Bratschi-Kaye <adam.bratschikaye@dfinity.org>
Signed-off-by: Adam Bratschi-Kaye <adam.bratschikaye@dfinity.org>
Signed-off-by: Zi Yan <ziy@nvidia.com>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Barry Song <baohua@kernel.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Nico Pache <npache@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2026-04-05 13:53:36 -07:00

65 lines
975 B
Plaintext

# SPDX-License-Identifier: GPL-2.0-only
cow
hugepage-mmap
hugepage-mremap
hugepage-shm
hugepage-vmemmap
hugetlb-madvise
hugetlb-read-hwpoison
hugetlb-soft-offline
khugepaged
map_hugetlb
map_populate
thuge-gen
compaction_test
memory-failure
migration
mlock2-tests
mrelease_test
mremap_dontunmap
mremap_test
on-fault-limit
transhuge-stress
pagemap_ioctl
pfnmap
process_madv
*.tmp*
protection_keys
protection_keys_32
protection_keys_64
madv_populate
uffd-stress
uffd-unit-tests
uffd-wp-mremap
mlock-intersect-test
mlock-random-test
virtual_address_range
gup_test
va_128TBswitch
map_fixed_noreplace
write_to_hugetlbfs
hmm-tests
memfd_secret
soft-dirty
split_huge_page_test
ksm_tests
local_config.h
local_config.mk
ksm_functional_tests
mdwe_test
gup_longterm
mkdirty
va_high_addr_switch
hugetlb_fault_after_madv
hugetlb_madv_vs_map
mseal_test
droppable
hugetlb_dio
pkey_sighandler_tests_32
pkey_sighandler_tests_64
guard-regions
merge
prctl_thp_disable
rmap
folio_split_race_test