Lines Matching +full:in +full:- +full:memory
1 # SPDX-License-Identifier: GPL-2.0-only
3 menu "Memory Management options"
7 # add proper SWAP support to them, in which case this can be remove.
13 bool "Support for paging of anonymous memory (swap)"
18 for so called swap devices or swap files in your kernel that are
19 used to provide more virtual memory than the actual RAM present
20 in your computer. If unsure say Y.
29 pages that are in the process of being swapped out and attempts to
30 compress them into a dynamically allocated RAM-based memory pool.
31 This can result in a significant I/O reduction on swap device and,
32 in the case where decompressing from RAM is faster than swap device
46 bool "Shrink the zswap pool on memory pressure"
51 stored in the zswap pool will become available for reclaim (i.e
52 written back to the backing swap device) on memory pressure.
56 reducing the chance that cold pages will reside in the zswap pool
57 and consume memory indefinitely.
72 If in doubt, select 'LZO'.
139 This option enables code in the zsmalloc to collect various
140 statistics about what's happening in zsmalloc and exports that
145 int "Maximum number of physical pages per-zspage"
156 per zspage. This can also result in different configurations of
177 bool "Configure for minimal memory footprint"
181 Configures the slab allocator in a way to achieve minimal memory
193 For reduced kernel memory fragmentation, slab caches can be
199 can usually only damage objects in the same cache. To disable
226 specifically-sized allocations with user-controlled contents
230 user-controlled allocations. This may very slightly increase
231 memory fragmentation, though in practice it's only a handful
232 of extra pages since the bulk of user-controlled allocations
233 are relatively long-lived.
242 The statistics are useful to debug slab allocation behavior in
248 Try running: slabinfo -DA
257 in the latency of the free. On overflow these caches will be cleared
269 vulnerable memory objects on the heap for the purpose of exploiting
270 memory vulnerabilities.
273 that effectively diverges the memory objects allocated for different
275 limited degree of memory and CPU overhead that relates to hardware and
285 utilization of a direct-mapped memory-side-cache. See section
286 5.2.27 Heterogeneous Memory Attribute Table (HMAT) in the ACPI
288 the presence of a memory-side-cache. There are also incidental
313 On non-ancient distros (post-2000 ones) N is usually a safe choice.
316 bool "Allow mmapped anonymous memory to be uninitialized"
320 Normally, and according to the Linux spec, anonymous memory obtained
328 ELF-FDPIC binfmt's brk and stack allocator.
331 enabled on embedded devices where you control what is run in
332 userspace. Since that isn't generally a problem on no-MMU systems,
335 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
342 prompt "Memory model"
348 Linux manages its memory internally. Most users will
353 bool "Flat Memory"
356 This option is best suited for non-NUMA systems with
358 system in terms of performance and resource consumption
361 For systems that have holes in their physical address
362 spaces and for features like NUMA and memory hotplug,
363 choose "Sparse Memory".
365 If unsure, choose this option (Flat Memory) over any other.
368 bool "Sparse Memory"
372 memory hot-plug systems. This is normal.
375 holes is their physical address space and allows memory
376 hot-plug and hot-remove.
378 If unsure, choose "Flat Memory" over this option.
404 # Architecture platforms which require a two level mem_section in SPARSEMEM
445 # Enable memblock support for scratch memory which is needed for kexec handover
449 # Don't discard allocated memory used to track "memory" and "reserved" memblocks
450 # after early boot, so it can still be used to test for validity of memory.
451 # Also, memblocks are updated with memory hot(un)plug.
455 # Keep arch NUMA mapping infrastructure post-init.
462 # IORESOURCE_SYSTEM_RAM regions in the kernel resource tree that are marked
470 # Only be set on architectures that have completely implemented memory hotplug
484 bool "Memory hotplug"
494 prompt "Memory Hotplug Default Online Type"
497 Default memory type for hotplugged memory.
499 This option sets the default policy setting for memory hotplug
500 onlining policy (/sys/devices/system/memory/auto_online_blocks) which
501 determines what happens to newly added memory regions. Policy setting
508 Select online_kernel to generally allow kernel usage of this memory.
509 Select online_movable to generally disallow kernel usage of this memory.
513 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
518 Hotplugged memory will not be onlined by default.
520 handle onlining of hotplug memory policy.
526 hotplugged memory into the zone it thinks is reasonable.
527 This memory may be utilized for kernel data.
533 hotplugged memory into a zone capable of being used for kernel
540 hotplug memory into ZONE_MOVABLE. This memory will generally
544 ZONE_NORMAL memory is available to describe hotplug memory,
545 otherwise hotplug memory may fail to online. For example,
546 sufficient kernel-capable memory (ZONE_NORMAL) must be
552 bool "Allow for memory hot remove"
567 # Heavily threaded applications may benefit from splitting the mm-wide
571 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
572 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
574 # a per-page lock leads to problems when multiple tables need to be locked
595 # support for memory balloon
600 # support for memory balloon compaction
602 bool "Allow for balloon memory compaction/migration"
606 Memory fragmentation introduced by ballooning might reduce
607 significantly the number of 2MB contiguous memory blocks that can be
610 by the guest workload. Allowing the compaction & migration for memory
611 pages enlisted as being part of memory balloon devices avoids the
612 scenario aforementioned and helps improving memory defragmentation.
615 # support for memory compaction
617 bool "Allow for memory compaction"
622 Compaction is the only memory management component to form
623 high order (larger physically contiguous) memory blocks
626 invocations for high order memory requests. You shouldn't
629 linux-mm@kvack.org.
645 memory can be freed within the host for other uses.
656 while the virtual addresses are not changed. This is useful in
685 int "Maximum scale factor of PCP (Per-CPU pageset) batch allocate/free"
689 In page allocator, PCP (Per-CPU pageset) is refilled and drained in
711 saving memory until one or another app needs to modify the content.
722 This is the portion of low virtual memory which should be protected
742 bool "Enable recovery from hardware memory errors"
745 Enables code to recover from some memory failures on systems
747 even when some of its memory has uncorrected errors. This requires
748 special hardware support and typically ECC memory.
761 of memory on which to store mappings, but it can only ask the system
762 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
771 long-term mappings means that the space is wasted.
781 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
794 of the huge zero folio and expand the places in the kernel
796 from access to large folios for zeroing memory.
799 once and never freed. One full huge page's worth of memory shall
802 Say Y if your system has lots of memory. Say N if you are
803 memory constrained.
818 applications by speeding up page faults during memory
822 If memory constrained on embedded, you may want to say N.
837 memory footprint of applications without a guaranteed
846 memory footprint of applications without a guaranteed
881 increase the memory footprint of applications without a
898 This ensures that hugepages are used only in response to explicit
926 increase the memory footprint of applications without a
943 This ensures that hugepages are used only in response to explicit
951 Swap transparent huge pages in one piece, without splitting.
958 bool "Read-only THP for filesystems (EXPERIMENTAL)"
962 Allow khugepaged to put read-only file-backed pages in THP.
965 support of file THPs will be developed in the next few release
969 bool "No per-page mapcount (EXPERIMENTAL)"
971 Do not maintain per-page mapcounts for pages part of larger
975 this information will rely on less-precise per-allocation information
976 instead: for example, using the average per-page mapcount in such
977 a large allocation instead of the per-page mapcount.
1018 # variables in modules should set this.
1044 bool "Contiguous Memory Allocator"
1049 This enables the Contiguous Memory Allocator which allows other
1050 subsystems to allocate big physically-contiguous blocks of memory.
1051 CMA reserves a region of memory and allows only movable pages to
1052 be allocated from it. This way, the kernel can use the memory for
1079 number of CMA area in the system.
1081 If unsure, leave the default value "8" in UMA and "20" in NUMA.
1110 (see include/linux/pageblock-flags.h for details).
1119 bool "Track memory changes"
1123 This option enables memory changes tracking by introducing a
1124 soft-dirty bit on pte-s. This bit it set when someone writes
1128 See Documentation/admin-guide/mm/soft-dirty.rst for more details.
1134 int "Default maximum user stack size for 32-bit processes (MB)"
1139 This is the maximum stack size in Megabytes in the VM layout of 32-bit
1153 Ordinarily all struct pages are initialised during early boot in a
1156 a subset of memmap at boot and then initialise the rest in parallel.
1157 This has a potential performance impact on tasks running early in the
1166 bit writers can set the state of the bit in the flags so that PTE
1176 be useful to tune memory cgroup limits and/or for job placement
1179 See Documentation/admin-guide/mm/idle_page_tracking.rst for
1194 In support of HARDENED_USERCOPY performing stack variable lifetime
1195 checking, an architecture-agnostic way to find the stack pointer
1213 bool "Device memory (pmem, HMM, etc...) hotplug support"
1220 Device memory hotplug support allows for establishing pmem,
1221 or other device driver discovered memory regions, in the
1223 "device-physical" addresses which is needed for using a DAX
1224 mapping in an O_DIRECT operation, among other things.
1240 bool "Unaddressable device memory (GPU memory, ...)"
1246 memory; i.e., memory that is only accessible from the device (or
1272 bool "Collect percpu memory statistics"
1276 be used to help understand percpu memory usage.
1279 bool "Enable infrastructure for get_user_pages()-related unit tests"
1282 Provides /sys/kernel/debug/gup_test, which in turn provides a way
1283 to make ioctl calls that can launch kernel-based unit tests for
1288 the non-_fast variants.
1290 There is also a sub-test that allows running dump_page() on any
1292 range of user-space addresses. These pages are either pinned via
1334 memory areas visible only in the context of the owning process and
1342 Allow naming anonymous virtual memory areas.
1344 This feature allows assigning names to virtual memory areas. Assigned
1346 and help identifying individual anonymous memory areas.
1347 Assigning a name to anonymous virtual memory area might prevent that
1348 area from being merged with adjacent virtual memory areas due to the
1349 difference in their name.
1366 handle page faults in userland.
1377 file-backed memory types like shmem and hugetlbfs.
1380 # multi-gen LRU {
1382 bool "Multi-Gen LRU"
1384 # make sure folio->flags has enough spare bits
1387 A high performance LRU implementation to overcommit memory. See
1388 Documentation/admin-guide/mm/multigen_lru.rst for details.
1394 This option enables the multi-gen LRU by default.
1403 This option has a per-memcg and per-node memory overhead.
1417 Allow per-vma locking during page fault handling.
1419 This feature allows locking each virtual memory area separately when
1448 stacks (eg, x86 CET, arm64 GCS or RISC-V Zicfiss).
1459 Try to reclaim empty user page table pages in paths other than munmap