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
57 in zswap until the swap entry is freed.
59 This avoids having two copies of the same page in memory
60 (compressed and uncompressed) after faulting in a page from zswap.
62 swapped out again, it will be re-compressed.
77 If in doubt, select 'LZO'.
156 Deprecated and scheduled for removal in a few cycles,
188 Deprecated and scheduled for removal in a few cycles. If you have
190 linux-mm@kvack.org and the zswap maintainers.
208 zsmalloc is a slab-based memory allocator designed to store
217 This option enables code in the zsmalloc to collect various
218 statistics about what's happening in zsmalloc and exports that
223 int "Maximum number of physical pages per-zspage"
235 per zspage. This can also result in different configurations of
253 Deprecated and scheduled for removal in a few cycles. Replaced by
256 If you cannot migrate to SLUB, please contact linux-mm@kvack.org
257 and the people listed in the SLAB ALLOCATOR section of MAINTAINERS
261 well in all environments. It organizes cache hot objects in
270 of queues of objects. SLUB can use memory efficiently
282 bool "Configure SLUB for minimal memory footprint"
286 Configures the SLUB allocator in a way to achieve minimal memory
299 For reduced kernel memory fragmentation, slab caches can be
305 can usually only damage objects in the same cache. To disable
325 sanity-checking than others. This option is most effective with
333 SLUB statistics are useful to debug SLUBs allocation behavior in
339 Try running: slabinfo -DA
348 in the latency of the free. On overflow these caches will be cleared
360 vulnerable memory objects on the heap for the purpose of exploiting
361 memory vulnerabilities.
364 that effectively diverges the memory objects allocated for different
366 limited degree of memory and CPU overhead that relates to hardware and
376 utilization of a direct-mapped memory-side-cache. See section
377 5.2.27 Heterogeneous Memory Attribute Table (HMAT) in the ACPI
379 the presence of a memory-side-cache. There are also incidental
389 after runtime detection of a direct-mapped memory-side-cache.
405 On non-ancient distros (post-2000 ones) N is usually a safe choice.
408 bool "Allow mmapped anonymous memory to be uninitialized"
412 Normally, and according to the Linux spec, anonymous memory obtained
420 ELF-FDPIC binfmt's brk and stack allocator.
423 enabled on embedded devices where you control what is run in
424 userspace. Since that isn't generally a problem on no-MMU systems,
427 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
434 prompt "Memory model"
440 Linux manages its memory internally. Most users will
445 bool "Flat Memory"
448 This option is best suited for non-NUMA systems with
450 system in terms of performance and resource consumption
453 For systems that have holes in their physical address
454 spaces and for features like NUMA and memory hotplug,
455 choose "Sparse Memory".
457 If unsure, choose this option (Flat Memory) over any other.
460 bool "Sparse Memory"
464 memory hot-plug systems. This is normal.
467 holes is their physical address space and allows memory
468 hot-plug and hot-remove.
470 If unsure, choose "Flat Memory" over this option.
496 # Architecture platforms which require a two level mem_section in SPARSEMEM
508 bool "Sparse Memory virtual memmap"
532 # Don't discard allocated memory used to track "memory" and "reserved" memblocks
533 # after early boot, so it can still be used to test for validity of memory.
534 # Also, memblocks are updated with memory hot(un)plug.
538 # Keep arch NUMA mapping infrastructure post-init.
545 # IORESOURCE_SYSTEM_RAM regions in the kernel resource tree that are marked
553 # Only be set on architectures that have completely implemented memory hotplug
567 bool "Memory hotplug"
577 bool "Online the newly added memory blocks by default"
580 This option sets the default policy setting for memory hotplug
581 onlining policy (/sys/devices/system/memory/auto_online_blocks) which
582 determines what happens to newly added memory regions. Policy setting
584 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
586 Say Y here if you want all hot-plugged memory blocks to appear in
588 Say N here if you want the default policy to keep all hot-plugged
589 memory blocks in 'offline' state.
592 bool "Allow for memory hot remove"
607 # Heavily threaded applications may benefit from splitting the mm-wide
611 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
612 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
614 # a per-page lock leads to problems when multiple tables need to be locked
630 # support for memory balloon
635 # support for memory balloon compaction
637 bool "Allow for balloon memory compaction/migration"
641 Memory fragmentation introduced by ballooning might reduce
642 significantly the number of 2MB contiguous memory blocks that can be
645 by the guest workload. Allowing the compaction & migration for memory
646 pages enlisted as being part of memory balloon devices avoids the
647 scenario aforementioned and helps improving memory defragmentation.
650 # support for memory compaction
652 bool "Allow for memory compaction"
657 Compaction is the only memory management component to form
658 high order (larger physically contiguous) memory blocks
661 invocations for high order memory requests. You shouldn't
664 linux-mm@kvack.org.
681 memory can be freed within the host for other uses.
692 while the virtual addresses are not changed. This is useful in
721 int "Maximum scale factor of PCP (Per-CPU pageset) batch allocate/free"
725 In page allocator, PCP (Per-CPU pageset) is refilled and drained in
740 memory available to the CPU. Enabled by default when HIGHMEM is
756 saving memory until one or another app needs to modify the content.
767 This is the portion of low virtual memory which should be protected
787 bool "Enable recovery from hardware memory errors"
791 Enables code to recover from some memory failures on systems
793 even when some of its memory has uncorrected errors. This requires
794 special hardware support and typically ECC memory.
807 of memory on which to store mappings, but it can only ask the system
808 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
817 long-term mappings means that the space is wasted.
827 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
844 applications by speeding up page faults during memory
848 If memory constrained on embedded, you may want to say N.
863 memory footprint of applications without a guaranteed
872 memory footprint of applications without a guaranteed
880 Swap transparent huge pages in one piece, without splitting.
887 bool "Read-only THP for filesystems (EXPERIMENTAL)"
891 Allow khugepaged to put read-only file-backed pages in THP.
894 support of file THPs will be developed in the next few release
920 bool "Contiguous Memory Allocator"
925 This enables the Contiguous Memory Allocator which allows other
926 subsystems to allocate big physically-contiguous blocks of memory.
927 CMA reserves a region of memory and allows only movable pages to
928 be allocated from it. This way, the kernel can use the memory for
938 Turns on debug messages in CMA. This produces KERN_DEBUG
964 number of CMA area in the system.
966 If unsure, leave the default value "7" in UMA and "19" in NUMA.
969 bool "Track memory changes"
973 This option enables memory changes tracking by introducing a
974 soft-dirty bit on pte-s. This bit it set when someone writes
978 See Documentation/admin-guide/mm/soft-dirty.rst for more details.
984 int "Default maximum user stack size for 32-bit processes (MB)"
989 This is the maximum stack size in Megabytes in the VM layout of 32-bit
1002 Ordinarily all struct pages are initialised during early boot in a
1005 a subset of memmap at boot and then initialise the rest in parallel.
1006 This has a potential performance impact on tasks running early in the
1015 bit writers can set the state of the bit in the flags so that PTE
1025 be useful to tune memory cgroup limits and/or for job placement
1028 See Documentation/admin-guide/mm/idle_page_tracking.rst for
1037 In support of HARDENED_USERCOPY performing stack variable lifetime
1038 checking, an architecture-agnostic way to find the stack pointer
1059 bool "Device memory (pmem, HMM, etc...) hotplug support"
1067 Device memory hotplug support allows for establishing pmem,
1068 or other device driver discovered memory regions, in the
1070 "device-physical" addresses which is needed for using a DAX
1071 mapping in an O_DIRECT operation, among other things.
1088 bool "Unaddressable device memory (GPU memory, ...)"
1094 memory; i.e., memory that is only accessible from the device (or
1109 suitable for 64-bit architectures with CONFIG_FLATMEM or
1111 enough room for additional bits in page->flags.
1123 bool "Collect percpu memory statistics"
1127 be used to help understand percpu memory usage.
1130 bool "Enable infrastructure for get_user_pages()-related unit tests"
1133 Provides /sys/kernel/debug/gup_test, which in turn provides a way
1134 to make ioctl calls that can launch kernel-based unit tests for
1139 the non-_fast variants.
1141 There is also a sub-test that allows running dump_page() on any
1143 range of user-space addresses. These pages are either pinned via
1199 memory areas visible only in the context of the owning process and
1207 Allow naming anonymous virtual memory areas.
1209 This feature allows assigning names to virtual memory areas. Assigned
1211 and help identifying individual anonymous memory areas.
1212 Assigning a name to anonymous virtual memory area might prevent that
1213 area from being merged with adjacent virtual memory areas due to the
1214 difference in their name.
1221 handle page faults in userland.
1241 file-backed memory types like shmem and hugetlbfs.
1243 # multi-gen LRU {
1245 bool "Multi-Gen LRU"
1247 # make sure folio->flags has enough spare bits
1250 A high performance LRU implementation to overcommit memory. See
1251 Documentation/admin-guide/mm/multigen_lru.rst for details.
1257 This option enables the multi-gen LRU by default.
1266 This option has a per-memcg and per-node memory overhead.
1276 Allow per-vma locking during page fault handling.
1278 This feature allows locking each virtual memory area separately when