mirror-linux/tools/testing/selftests/mm
Linus Torvalds 70f43ea3a3 Updates for x86 memory management:
- Make LAM enablement safe vs. kernel threads using a process mm
    temporarily as switching back to the process would not update CR3 and
    therefore not enable LAM causing faults in user space when using tagged
    pointers. Cure it by synchronizing LAM enablement via IPIs to all CPUs
    which use the related mm.
 
  - Cure a LAM harmless inconsistency between CR3 and the state during
    context switch. It's both confusing and prone to lead to real bugs
 
  - Handle alt stack handling for threads which run with a non-zero
    protection key. The non-zero key prevents the kernel to access the
    alternate stack. Cure it by temporarily enabling all protection keys for
    the alternate stack setup/restore operations.
 
  - Provide a EFI config table identity mapping for kexec kernel to prevent
    kexec fails because the new kernel cannot access the config table array
 
  - Use GB pages only when a full GB is mapped in the identity map as
    otherwise the CPU can speculate into reserved areas after the end of
    memory which causes malfunction on UV systems.
 
  - Remove the noisy and pointless SRAT table dump during boot
 
  - Use is_ioremap_addr() for iounmap() address range checks instead of
    high_memory. is_ioremap_addr() is more precise.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmbpPpYTHHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoYddD/9HeH5/rpWS3JU4ZVC+huY28uJuwAFW
 ER48zniRbmuz8y+dZZ6K8uvqoWB+ro+yNjA9Jhm9nHUzhs7kE5O8+bmkUi6HXViW
 6zS6PW95+u80dmSGy1Gna0SU3158OyBf2X61SySJABLLek7WwrR7jakkgrDBVtL5
 ILKS/dUwIrUPoVlszCh9uE0Kj6gdFquooE06sif5EIibnhSgSXfr2EbGj0Qq/YYf
 FYfpggSSVpTXFSkZSB2VCEqK66jaGUfKzZ6v1DkSioChUCsky2OO6zD9pk0dMixO
 a/0XvRUo3OhiXZbj1tPUtxaEBgJdigpsxke7xQSVxSl+DNNuapiybpgAzFM5Xh+m
 yFcP66nIpJcHE10vjVR3jSUlTSb2zk+v9d1Ujj10G1h8RHLTfsTCRHgzs7P0/nkE
 NJleWstYVRV5rFpPLoY0ryQmjW/PzYokkaqWKI12Lhxg4ojijZso3pS8WfOsk1/B
 081tOZERWeGnJEOOJwwYE1wt0Qq8th4S9b2/fz3vk2fsEHIf42s4fKQwy1CxKopb
 PyIrgnZyWx6ueX9QaIGIzGV1GsY4FKMgFJVOyVb0D0stMnr1ty2m3993eNs/nCXy
 +rHPMwFteLcwiWp/C3hq5IQd7uEvmRt/mYJ5hdvCj5wCIkXI3JtgsXfLSVs3Ln4f
 R6HvZehYmbJoNQ==
 =VZcR
 -----END PGP SIGNATURE-----

Merge tag 'x86-mm-2024-09-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 memory management updates from Thomas Gleixner:

 - Make LAM enablement safe vs. kernel threads using a process mm
   temporarily as switching back to the process would not update CR3 and
   therefore not enable LAM causing faults in user space when using
   tagged pointers. Cure it by synchronizing LAM enablement via IPIs to
   all CPUs which use the related mm.

 - Cure a LAM harmless inconsistency between CR3 and the state during
   context switch. It's both confusing and prone to lead to real bugs

 - Handle alt stack handling for threads which run with a non-zero
   protection key. The non-zero key prevents the kernel to access the
   alternate stack. Cure it by temporarily enabling all protection keys
   for the alternate stack setup/restore operations.

 - Provide a EFI config table identity mapping for kexec kernel to
   prevent kexec fails because the new kernel cannot access the config
   table array

 - Use GB pages only when a full GB is mapped in the identity map as
   otherwise the CPU can speculate into reserved areas after the end of
   memory which causes malfunction on UV systems.

 - Remove the noisy and pointless SRAT table dump during boot

 - Use is_ioremap_addr() for iounmap() address range checks instead of
   high_memory. is_ioremap_addr() is more precise.

* tag 'x86-mm-2024-09-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/ioremap: Improve iounmap() address range checks
  x86/mm: Remove duplicate check from build_cr3()
  x86/mm: Remove unused NX related declarations
  x86/mm: Remove unused CR3_HW_ASID_BITS
  x86/mm: Don't print out SRAT table information
  x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
  x86/kexec: Add EFI config table identity mapping for kexec kernel
  selftests/mm: Add new testcases for pkeys
  x86/pkeys: Restore altstack access in sigreturn()
  x86/pkeys: Update PKRU to enable all pkeys before XSAVE
  x86/pkeys: Add helper functions to update PKRU on the sigframe
  x86/pkeys: Add PKRU as a parameter in signal handling functions
  x86/mm: Cleanup prctl_enable_tagged_addr() nr_bits error checking
  x86/mm: Fix LAM inconsistency during context switch
  x86/mm: Use IPIs to synchronize LAM enablement
2024-09-17 15:03:01 +02:00
..
.gitignore Random number generator updates for Linux 6.11-rc1. 2024-07-24 10:29:50 -07:00
Makefile Updates for x86 memory management: 2024-09-17 15:03:01 +02:00
charge_reserved_hugetlb.sh selftests/mm: save and restore nr_hugepages value 2024-02-22 15:38:55 -08:00
check_config.sh
compaction_test.c selftests/mm: compaction_test: fix off by one in check_compaction() 2024-08-15 22:16:15 -07:00
config
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
hugepage-mremap.c selftests/mm: remove local __NR_* definitions 2024-07-03 19:30:16 -07:00
hugepage-shm.c
hugepage-vmemmap.c
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
hugetlb-soft-offline.c selftest/mm: test enable_soft_offline behaviors 2024-07-04 18:06:00 -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
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
khugepaged.c
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
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: map_hugetlb: conform test to TAP format output 2024-02-22 10:24:48 -08: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
mkdirty.c 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
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
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: fix build errors on armhf 2024-09-01 17:58:59 -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-arm64.h selftests: mm: make protection_keys test work on arm64 2024-09-04 12:54:06 +01:00
pkey-helpers.h Updates for x86 memory management: 2024-09-17 15:03:01 +02:00
pkey-powerpc.h selftests: mm: make protection_keys test work on arm64 2024-09-04 12:54:06 +01:00
pkey-x86.h selftests: mm: make protection_keys test work on arm64 2024-09-04 12:54:06 +01:00
pkey_sighandler_tests.c selftests/mm: Add new testcases for pkeys 2024-08-02 14:12:21 +02:00
protection_keys.c Updates for x86 memory management: 2024-09-17 15:03:01 +02:00
run_vmtests.sh selftests: memfd_secret: don't build memfd_secret test on unsupported arches 2024-08-15 22:16:15 -07:00
seal_elf.c selftests: mm: fix build errors on armhf 2024-09-01 17:58:59 -07:00
settings
soft-dirty.c selftests/mm: ksft_exit functions do not return 2024-05-06 13:57:20 -06:00
split_huge_page_test.c selftests/mm: use asm volatile to not optimize mmap read variable 2024-07-03 19:30:07 -07:00
test_hmm.sh
test_vmalloc.sh
thp_settings.c
thp_settings.h
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 selftests/mm: transhuge-stress: conform to TAP format output 2024-02-22 10:24:49 -08:00
vm_util.h selftests/mm: include strings.h for ffsl 2024-04-05 11:21:30 -07:00
write_hugetlb_memory.sh
write_to_hugetlbfs.c