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.
16 bool "Support for paging of anonymous memory (swap)"
21 for so called swap devices or swap files in your kernel that are
22 used to provide more virtual memory than the actual RAM present
23 in your computer. If unsure say Y.
32 pages that are in the process of being swapped out and attempts to
33 compress them into a dynamically allocated RAM-based memory pool.
34 This can result in a significant I/O reduction on swap device and,
35 in the case where decompressing from RAM is faster than swap device
49 bool "Shrink the zswap pool on memory pressure"
54 stored in the zswap pool will become available for reclaim (i.e
55 written back to the backing swap device) on memory pressure.
59 reducing the chance that cold pages will reside in the zswap pool
60 and consume memory indefinitely.
75 If in doubt, select 'LZO'.
160 zsmalloc is a slab-based memory allocator designed to store
169 This option enables code in the zsmalloc to collect various
170 statistics about what's happening in zsmalloc and exports that
175 int "Maximum number of physical pages per-zspage"
187 per zspage. This can also result in different configurations of
203 bool "Configure for minimal memory footprint"
207 Configures the slab allocator in a way to achieve minimal memory
219 For reduced kernel memory fragmentation, slab caches can be
225 can usually only damage objects in the same cache. To disable
252 specifically-sized allocations with user-controlled contents
256 user-controlled allocations. This may very slightly increase
257 memory fragmentation, though in practice it's only a handful
258 of extra pages since the bulk of user-controlled allocations
259 are relatively long-lived.
268 The statistics are useful to debug slab allocation behavior in
274 Try running: slabinfo -DA
283 in the latency of the free. On overflow these caches will be cleared
295 vulnerable memory objects on the heap for the purpose of exploiting
296 memory vulnerabilities.
299 that effectively diverges the memory objects allocated for different
301 limited degree of memory and CPU overhead that relates to hardware and
311 utilization of a direct-mapped memory-side-cache. See section
312 5.2.27 Heterogeneous Memory Attribute Table (HMAT) in the ACPI
314 the presence of a memory-side-cache. There are also incidental
339 On non-ancient distros (post-2000 ones) N is usually a safe choice.
342 bool "Allow mmapped anonymous memory to be uninitialized"
346 Normally, and according to the Linux spec, anonymous memory obtained
354 ELF-FDPIC binfmt's brk and stack allocator.
357 enabled on embedded devices where you control what is run in
358 userspace. Since that isn't generally a problem on no-MMU systems,
361 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
368 prompt "Memory model"
374 Linux manages its memory internally. Most users will
379 bool "Flat Memory"
382 This option is best suited for non-NUMA systems with
384 system in terms of performance and resource consumption
387 For systems that have holes in their physical address
388 spaces and for features like NUMA and memory hotplug,
389 choose "Sparse Memory".
391 If unsure, choose this option (Flat Memory) over any other.
394 bool "Sparse Memory"
398 memory hot-plug systems. This is normal.
401 holes is their physical address space and allows memory
402 hot-plug and hot-remove.
404 If unsure, choose "Flat Memory" over this option.
430 # Architecture platforms which require a two level mem_section in SPARSEMEM
442 bool "Sparse Memory virtual memmap"
472 # Enable memblock support for scratch memory which is needed for kexec handover
476 # Don't discard allocated memory used to track "memory" and "reserved" memblocks
477 # after early boot, so it can still be used to test for validity of memory.
478 # Also, memblocks are updated with memory hot(un)plug.
482 # Keep arch NUMA mapping infrastructure post-init.
489 # IORESOURCE_SYSTEM_RAM regions in the kernel resource tree that are marked
497 # Only be set on architectures that have completely implemented memory hotplug
511 bool "Memory hotplug"
521 prompt "Memory Hotplug Default Online Type"
524 Default memory type for hotplugged memory.
526 This option sets the default policy setting for memory hotplug
527 onlining policy (/sys/devices/system/memory/auto_online_blocks) which
528 determines what happens to newly added memory regions. Policy setting
535 Select online_kernel to generally allow kernel usage of this memory.
536 Select online_movable to generally disallow kernel usage of this memory.
540 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
545 Hotplugged memory will not be onlined by default.
547 handle onlining of hotplug memory policy.
553 hotplugged memory into the zone it thinks is reasonable.
554 This memory may be utilized for kernel data.
560 hotplugged memory into a zone capable of being used for kernel
567 hotplug memory into ZONE_MOVABLE. This memory will generally
571 ZONE_NORMAL memory is available to describe hotplug memory,
572 otherwise hotplug memory may fail to online. For example,
573 sufficient kernel-capable memory (ZONE_NORMAL) must be
579 bool "Allow for memory hot remove"
594 # Heavily threaded applications may benefit from splitting the mm-wide
598 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
599 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
601 # a per-page lock leads to problems when multiple tables need to be locked
622 # support for memory balloon
627 # support for memory balloon compaction
629 bool "Allow for balloon memory compaction/migration"
633 Memory fragmentation introduced by ballooning might reduce
634 significantly the number of 2MB contiguous memory blocks that can be
637 by the guest workload. Allowing the compaction & migration for memory
638 pages enlisted as being part of memory balloon devices avoids the
639 scenario aforementioned and helps improving memory defragmentation.
642 # support for memory compaction
644 bool "Allow for memory compaction"
649 Compaction is the only memory management component to form
650 high order (larger physically contiguous) memory blocks
653 invocations for high order memory requests. You shouldn't
656 linux-mm@kvack.org.
672 memory can be freed within the host for other uses.
683 while the virtual addresses are not changed. This is useful in
712 int "Maximum scale factor of PCP (Per-CPU pageset) batch allocate/free"
716 In page allocator, PCP (Per-CPU pageset) is refilled and drained in
731 memory available to the CPU. Enabled by default when HIGHMEM is
747 saving memory until one or another app needs to modify the content.
758 This is the portion of low virtual memory which should be protected
778 bool "Enable recovery from hardware memory errors"
782 Enables code to recover from some memory failures on systems
784 even when some of its memory has uncorrected errors. This requires
785 special hardware support and typically ECC memory.
798 of memory on which to store mappings, but it can only ask the system
799 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
808 long-term mappings means that the space is wasted.
818 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
839 applications by speeding up page faults during memory
843 If memory constrained on embedded, you may want to say N.
858 memory footprint of applications without a guaranteed
867 memory footprint of applications without a guaranteed
881 Swap transparent huge pages in one piece, without splitting.
888 bool "Read-only THP for filesystems (EXPERIMENTAL)"
892 Allow khugepaged to put read-only file-backed pages in THP.
895 support of file THPs will be developed in the next few release
899 bool "No per-page mapcount (EXPERIMENTAL)"
901 Do not maintain per-page mapcounts for pages part of larger
905 this information will rely on less-precise per-allocation information
906 instead: for example, using the average per-page mapcount in such
907 a large allocation instead of the per-page mapcount.
957 bool "Contiguous Memory Allocator"
962 This enables the Contiguous Memory Allocator which allows other
963 subsystems to allocate big physically-contiguous blocks of memory.
964 CMA reserves a region of memory and allows only movable pages to
965 be allocated from it. This way, the kernel can use the memory for
992 number of CMA area in the system.
994 If unsure, leave the default value "8" in UMA and "20" in NUMA.
1031 bool "Track memory changes"
1035 This option enables memory changes tracking by introducing a
1036 soft-dirty bit on pte-s. This bit it set when someone writes
1040 See Documentation/admin-guide/mm/soft-dirty.rst for more details.
1046 int "Default maximum user stack size for 32-bit processes (MB)"
1051 This is the maximum stack size in Megabytes in the VM layout of 32-bit
1065 Ordinarily all struct pages are initialised during early boot in a
1068 a subset of memmap at boot and then initialise the rest in parallel.
1069 This has a potential performance impact on tasks running early in the
1078 bit writers can set the state of the bit in the flags so that PTE
1088 be useful to tune memory cgroup limits and/or for job placement
1091 See Documentation/admin-guide/mm/idle_page_tracking.rst for
1106 In support of HARDENED_USERCOPY performing stack variable lifetime
1107 checking, an architecture-agnostic way to find the stack pointer
1128 bool "Device memory (pmem, HMM, etc...) hotplug support"
1136 Device memory hotplug support allows for establishing pmem,
1137 or other device driver discovered memory regions, in the
1139 "device-physical" addresses which is needed for using a DAX
1140 mapping in an O_DIRECT operation, among other things.
1156 bool "Unaddressable device memory (GPU memory, ...)"
1162 memory; i.e., memory that is only accessible from the device (or
1188 bool "Collect percpu memory statistics"
1192 be used to help understand percpu memory usage.
1195 bool "Enable infrastructure for get_user_pages()-related unit tests"
1198 Provides /sys/kernel/debug/gup_test, which in turn provides a way
1199 to make ioctl calls that can launch kernel-based unit tests for
1204 the non-_fast variants.
1206 There is also a sub-test that allows running dump_page() on any
1208 range of user-space addresses. These pages are either pinned via
1254 memory areas visible only in the context of the owning process and
1262 Allow naming anonymous virtual memory areas.
1264 This feature allows assigning names to virtual memory areas. Assigned
1266 and help identifying individual anonymous memory areas.
1267 Assigning a name to anonymous virtual memory area might prevent that
1268 area from being merged with adjacent virtual memory areas due to the
1269 difference in their name.
1286 handle page faults in userland.
1297 file-backed memory types like shmem and hugetlbfs.
1300 # multi-gen LRU {
1302 bool "Multi-Gen LRU"
1304 # make sure folio->flags has enough spare bits
1307 A high performance LRU implementation to overcommit memory. See
1308 Documentation/admin-guide/mm/multigen_lru.rst for details.
1314 This option enables the multi-gen LRU by default.
1323 This option has a per-memcg and per-node memory overhead.
1337 Allow per-vma locking during page fault handling.
1339 This feature allows locking each virtual memory area separately when
1368 stacks (eg, x86 CET, arm64 GCS or RISC-V Zicfiss).
1379 Try to reclaim empty user page table pages in paths other than munmap