mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	and alloc_contig_range alignment", from Zi Yan.
 
 A series of z3fold cleanups and fixes from Miaohe Lin.
 
 Some memcg selftests work from Michal Koutný <mkoutny@suse.com>
 
 Some swap fixes and cleanups from Miaohe Lin.
 
 Several individual minor fixups.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCYpEE7QAKCRDdBJ7gKXxA
 jlamAP9WmjNdx+5Pz5OkkaSjBO7y7vBrBTcQ9e5pz8bUWRoQhwEA+WtsssLmq9aI
 7DBDmBKYCMTbzOQTqaMRHkB+JWZo+Ao=
 =L3f1
 -----END PGP SIGNATURE-----
Merge tag 'mm-stable-2022-05-27' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull more MM updates from Andrew Morton:
 - Two follow-on fixes for the post-5.19 series "Use pageblock_order for
   cma and alloc_contig_range alignment", from Zi Yan.
 - A series of z3fold cleanups and fixes from Miaohe Lin.
 - Some memcg selftests work from Michal Koutný <mkoutny@suse.com>
 - Some swap fixes and cleanups from Miaohe Lin
 - Several individual minor fixups
* tag 'mm-stable-2022-05-27' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (25 commits)
  mm/shmem.c: suppress shift warning
  mm: Kconfig: reorganize misplaced mm options
  mm: kasan: fix input of vmalloc_to_page()
  mm: fix is_pinnable_page against a cma page
  mm: filter out swapin error entry in shmem mapping
  mm/shmem: fix infinite loop when swap in shmem error at swapoff time
  mm/madvise: free hwpoison and swapin error entry in madvise_free_pte_range
  mm/swapfile: fix lost swap bits in unuse_pte()
  mm/swapfile: unuse_pte can map random data if swap read fails
  selftests: memcg: factor out common parts of memory.{low,min} tests
  selftests: memcg: remove protection from top level memcg
  selftests: memcg: adjust expected reclaim values of protected cgroups
  selftests: memcg: expect no low events in unprotected sibling
  selftests: memcg: fix compilation
  mm/z3fold: fix z3fold_page_migrate races with z3fold_map
  mm/z3fold: fix z3fold_reclaim_page races with z3fold_free
  mm/z3fold: always clear PAGE_CLAIMED under z3fold page lock
  mm/z3fold: put z3fold page back into unbuddied list when reclaim or migration fails
  revert "mm/z3fold.c: allow __GFP_HIGHMEM in z3fold_alloc"
  mm/z3fold: throw warning on failure of trylock_page in z3fold_alloc
  ...
		
	
			
		
			
				
	
	
		
			209 lines
		
	
	
	
		
			7.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			209 lines
		
	
	
	
		
			7.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# SPDX-License-Identifier: GPL-2.0-only
 | 
						|
config PAGE_EXTENSION
 | 
						|
	bool "Extend memmap on extra space for more information on page"
 | 
						|
	help
 | 
						|
	  Extend memmap on extra space for more information on page. This
 | 
						|
	  could be used for debugging features that need to insert extra
 | 
						|
	  field for every page. This extension enables us to save memory
 | 
						|
	  by not allocating this extra memory according to boottime
 | 
						|
	  configuration.
 | 
						|
 | 
						|
config DEBUG_PAGEALLOC
 | 
						|
	bool "Debug page memory allocations"
 | 
						|
	depends on DEBUG_KERNEL
 | 
						|
	depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
 | 
						|
	select PAGE_POISONING if !ARCH_SUPPORTS_DEBUG_PAGEALLOC
 | 
						|
	help
 | 
						|
	  Unmap pages from the kernel linear mapping after free_pages().
 | 
						|
	  Depending on runtime enablement, this results in a small or large
 | 
						|
	  slowdown, but helps to find certain types of memory corruption.
 | 
						|
 | 
						|
	  Also, the state of page tracking structures is checked more often as
 | 
						|
	  pages are being allocated and freed, as unexpected state changes
 | 
						|
	  often happen for same reasons as memory corruption (e.g. double free,
 | 
						|
	  use-after-free). The error reports for these checks can be augmented
 | 
						|
	  with stack traces of last allocation and freeing of the page, when
 | 
						|
	  PAGE_OWNER is also selected and enabled on boot.
 | 
						|
 | 
						|
	  For architectures which don't enable ARCH_SUPPORTS_DEBUG_PAGEALLOC,
 | 
						|
	  fill the pages with poison patterns after free_pages() and verify
 | 
						|
	  the patterns before alloc_pages(). Additionally, this option cannot
 | 
						|
	  be enabled in combination with hibernation as that would result in
 | 
						|
	  incorrect warnings of memory corruption after a resume because free
 | 
						|
	  pages are not saved to the suspend image.
 | 
						|
 | 
						|
	  By default this option will have a small overhead, e.g. by not
 | 
						|
	  allowing the kernel mapping to be backed by large pages on some
 | 
						|
	  architectures. Even bigger overhead comes when the debugging is
 | 
						|
	  enabled by DEBUG_PAGEALLOC_ENABLE_DEFAULT or the debug_pagealloc
 | 
						|
	  command line parameter.
 | 
						|
 | 
						|
config DEBUG_PAGEALLOC_ENABLE_DEFAULT
 | 
						|
	bool "Enable debug page memory allocations by default?"
 | 
						|
	depends on DEBUG_PAGEALLOC
 | 
						|
	help
 | 
						|
	  Enable debug page memory allocations by default? This value
 | 
						|
	  can be overridden by debug_pagealloc=off|on.
 | 
						|
 | 
						|
config DEBUG_SLAB
 | 
						|
	bool "Debug slab memory allocations"
 | 
						|
	depends on DEBUG_KERNEL && SLAB
 | 
						|
	help
 | 
						|
	  Say Y here to have the kernel do limited verification on memory
 | 
						|
	  allocation as well as poisoning memory on free to catch use of freed
 | 
						|
	  memory. This can make kmalloc/kfree-intensive workloads much slower.
 | 
						|
 | 
						|
config SLUB_DEBUG
 | 
						|
	default y
 | 
						|
	bool "Enable SLUB debugging support" if EXPERT
 | 
						|
	depends on SLUB && SYSFS
 | 
						|
	select STACKDEPOT if STACKTRACE_SUPPORT
 | 
						|
	help
 | 
						|
	  SLUB has extensive debug support features. Disabling these can
 | 
						|
	  result in significant savings in code size. This also disables
 | 
						|
	  SLUB sysfs support. /sys/slab will not exist and there will be
 | 
						|
	  no support for cache validation etc.
 | 
						|
 | 
						|
config SLUB_DEBUG_ON
 | 
						|
	bool "SLUB debugging on by default"
 | 
						|
	depends on SLUB && SLUB_DEBUG
 | 
						|
	select STACKDEPOT_ALWAYS_INIT if STACKTRACE_SUPPORT
 | 
						|
	default n
 | 
						|
	help
 | 
						|
	  Boot with debugging on by default. SLUB boots by default with
 | 
						|
	  the runtime debug capabilities switched off. Enabling this is
 | 
						|
	  equivalent to specifying the "slub_debug" parameter on boot.
 | 
						|
	  There is no support for more fine grained debug control like
 | 
						|
	  possible with slub_debug=xxx. SLUB debugging may be switched
 | 
						|
	  off in a kernel built with CONFIG_SLUB_DEBUG_ON by specifying
 | 
						|
	  "slub_debug=-".
 | 
						|
 | 
						|
config PAGE_OWNER
 | 
						|
	bool "Track page owner"
 | 
						|
	depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
 | 
						|
	select DEBUG_FS
 | 
						|
	select STACKTRACE
 | 
						|
	select STACKDEPOT
 | 
						|
	select PAGE_EXTENSION
 | 
						|
	help
 | 
						|
	  This keeps track of what call chain is the owner of a page, may
 | 
						|
	  help to find bare alloc_page(s) leaks. Even if you include this
 | 
						|
	  feature on your build, it is disabled in default. You should pass
 | 
						|
	  "page_owner=on" to boot parameter in order to enable it. Eats
 | 
						|
	  a fair amount of memory if enabled. See tools/vm/page_owner_sort.c
 | 
						|
	  for user-space helper.
 | 
						|
 | 
						|
	  If unsure, say N.
 | 
						|
 | 
						|
config PAGE_TABLE_CHECK
 | 
						|
	bool "Check for invalid mappings in user page tables"
 | 
						|
	depends on ARCH_SUPPORTS_PAGE_TABLE_CHECK
 | 
						|
	select PAGE_EXTENSION
 | 
						|
	help
 | 
						|
	  Check that anonymous page is not being mapped twice with read write
 | 
						|
	  permissions. Check that anonymous and file pages are not being
 | 
						|
	  erroneously shared. Since the checking is performed at the time
 | 
						|
	  entries are added and removed to user page tables, leaking, corruption
 | 
						|
	  and double mapping problems are detected synchronously.
 | 
						|
 | 
						|
	  If unsure say "n".
 | 
						|
 | 
						|
config PAGE_TABLE_CHECK_ENFORCED
 | 
						|
	bool "Enforce the page table checking by default"
 | 
						|
	depends on PAGE_TABLE_CHECK
 | 
						|
	help
 | 
						|
	  Always enable page table checking.  By default the page table checking
 | 
						|
	  is disabled, and can be optionally enabled via page_table_check=on
 | 
						|
	  kernel parameter. This config enforces that page table check is always
 | 
						|
	  enabled.
 | 
						|
 | 
						|
	  If unsure say "n".
 | 
						|
 | 
						|
config PAGE_POISONING
 | 
						|
	bool "Poison pages after freeing"
 | 
						|
	help
 | 
						|
	  Fill the pages with poison patterns after free_pages() and verify
 | 
						|
	  the patterns before alloc_pages. The filling of the memory helps
 | 
						|
	  reduce the risk of information leaks from freed data. This does
 | 
						|
	  have a potential performance impact if enabled with the
 | 
						|
	  "page_poison=1" kernel boot option.
 | 
						|
 | 
						|
	  Note that "poison" here is not the same thing as the "HWPoison"
 | 
						|
	  for CONFIG_MEMORY_FAILURE. This is software poisoning only.
 | 
						|
 | 
						|
	  If you are only interested in sanitization of freed pages without
 | 
						|
	  checking the poison pattern on alloc, you can boot the kernel with
 | 
						|
	  "init_on_free=1" instead of enabling this.
 | 
						|
 | 
						|
	  If unsure, say N
 | 
						|
 | 
						|
config DEBUG_PAGE_REF
 | 
						|
	bool "Enable tracepoint to track down page reference manipulation"
 | 
						|
	depends on DEBUG_KERNEL
 | 
						|
	depends on TRACEPOINTS
 | 
						|
	help
 | 
						|
	  This is a feature to add tracepoint for tracking down page reference
 | 
						|
	  manipulation. This tracking is useful to diagnose functional failure
 | 
						|
	  due to migration failures caused by page reference mismatches.  Be
 | 
						|
	  careful when enabling this feature because it adds about 30 KB to the
 | 
						|
	  kernel code.  However the runtime performance overhead is virtually
 | 
						|
	  nil until the tracepoints are actually enabled.
 | 
						|
 | 
						|
config DEBUG_RODATA_TEST
 | 
						|
    bool "Testcase for the marking rodata read-only"
 | 
						|
    depends on STRICT_KERNEL_RWX
 | 
						|
	help
 | 
						|
      This option enables a testcase for the setting rodata read-only.
 | 
						|
 | 
						|
config ARCH_HAS_DEBUG_WX
 | 
						|
	bool
 | 
						|
 | 
						|
config DEBUG_WX
 | 
						|
	bool "Warn on W+X mappings at boot"
 | 
						|
	depends on ARCH_HAS_DEBUG_WX
 | 
						|
	depends on MMU
 | 
						|
	select PTDUMP_CORE
 | 
						|
	help
 | 
						|
	  Generate a warning if any W+X mappings are found at boot.
 | 
						|
 | 
						|
	  This is useful for discovering cases where the kernel is leaving W+X
 | 
						|
	  mappings after applying NX, as such mappings are a security risk.
 | 
						|
 | 
						|
	  Look for a message in dmesg output like this:
 | 
						|
 | 
						|
	    <arch>/mm: Checked W+X mappings: passed, no W+X pages found.
 | 
						|
 | 
						|
	  or like this, if the check failed:
 | 
						|
 | 
						|
	    <arch>/mm: Checked W+X mappings: failed, <N> W+X pages found.
 | 
						|
 | 
						|
	  Note that even if the check fails, your kernel is possibly
 | 
						|
	  still fine, as W+X mappings are not a security hole in
 | 
						|
	  themselves, what they do is that they make the exploitation
 | 
						|
	  of other unfixed kernel bugs easier.
 | 
						|
 | 
						|
	  There is no runtime or memory usage effect of this option
 | 
						|
	  once the kernel has booted up - it's a one time check.
 | 
						|
 | 
						|
	  If in doubt, say "Y".
 | 
						|
 | 
						|
config GENERIC_PTDUMP
 | 
						|
	bool
 | 
						|
 | 
						|
config PTDUMP_CORE
 | 
						|
	bool
 | 
						|
 | 
						|
config PTDUMP_DEBUGFS
 | 
						|
	bool "Export kernel pagetable layout to userspace via debugfs"
 | 
						|
	depends on DEBUG_KERNEL
 | 
						|
	depends on DEBUG_FS
 | 
						|
	depends on GENERIC_PTDUMP
 | 
						|
	select PTDUMP_CORE
 | 
						|
	help
 | 
						|
	  Say Y here if you want to show the kernel pagetable layout in a
 | 
						|
	  debugfs file. This information is only useful for kernel developers
 | 
						|
	  who are working in architecture specific areas of the kernel.
 | 
						|
	  It is probably not a good idea to enable this feature in a production
 | 
						|
	  kernel.
 | 
						|
 | 
						|
	  If in doubt, say N.
 |