Lines Matching +full:memory +full:- +full:to +full:- +full:memory
1 # SPDX-License-Identifier: GPL-2.0-only
3 menu "Memory Management options"
10 prompt "Memory model"
16 This option allows you to change some of the ways that
17 Linux manages its memory internally. Most users will
22 bool "Flat Memory"
25 This option is best suited for non-NUMA systems with
31 spaces and for features like NUMA and memory hotplug,
32 choose "Sparse Memory".
34 If unsure, choose this option (Flat Memory) over any other.
37 bool "Discontiguous Memory"
41 memory systems, over FLATMEM. These systems have holes
45 Although "Discontiguous Memory" is still used by several
47 "Sparse Memory".
49 If unsure, choose "Sparse Memory" over this option.
52 bool "Sparse Memory"
56 memory hot-plug systems. This is normal.
59 holes is their physical address space and allows memory
60 hot-plug and hot-remove.
62 If unsure, choose "Flat Memory" over this option.
84 # to represent different areas of memory. This variable allows
85 # those dependencies to exist individually.
117 bool "Sparse Memory virtual memmap"
121 SPARSEMEM_VMEMMAP uses a virtually mapped memmap to optimise
132 # Don't discard allocated memory used to track "memory" and "reserved" memblocks
133 # after early boot, so it can still be used to test for validity of memory.
134 # Also, memblocks are updated with memory hot(un)plug.
138 # Keep arch NUMA mapping infrastructure post-init.
146 # Only be set on architectures that have completely implemented memory hotplug
154 bool "Allow for memory hot-add"
166 bool "Online the newly added memory blocks by default"
169 This option sets the default policy setting for memory hotplug
170 onlining policy (/sys/devices/system/memory/auto_online_blocks) which
171 determines what happens to newly added memory regions. Policy setting
173 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
175 Say Y here if you want all hot-plugged memory blocks to appear in
177 Say N here if you want the default policy to keep all hot-plugged
178 memory blocks in 'offline' state.
181 bool "Allow for memory hot remove"
186 # Heavily threaded applications may benefit from splitting the mm-wide
189 # Default to 4 for wider testing, though 8 might be more appropriate.
190 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
191 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
193 # a per-page lock leads to problems when multiple tables need to be locked
209 # support for memory balloon
214 # support for memory balloon compaction
216 bool "Allow for balloon memory compaction/migration"
220 Memory fragmentation introduced by ballooning might reduce
221 significantly the number of 2MB contiguous memory blocks that can be
224 by the guest workload. Allowing the compaction & migration for memory
225 pages enlisted as being part of memory balloon devices avoids the
226 scenario aforementioned and helps improving memory defragmentation.
229 # support for memory compaction
231 bool "Allow for memory compaction"
236 Compaction is the only memory management component to form
237 high order (larger physically contiguous) memory blocks
239 the lack of the feature can lead to unexpected OOM killer
240 invocations for high order memory requests. You shouldn't
242 it and then we would be really interested to hear about that at
243 linux-mm@kvack.org.
253 those pages to another entity, such as a hypervisor, so that the
254 memory can be freed within the host for other uses.
266 two situations. The first is on NUMA systems to put pages nearer
267 to the processors accessing. The second is when allocating huge
268 pages as migration can relocate pages to satisfy a huge page
289 the full range of memory available to the CPU. Enabled
291 may say n to override this.
315 saving memory until one or another app needs to modify the content.
319 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
322 int "Low address space to protect from user allocation"
326 This is the portion of low virtual memory which should be protected
327 from userspace allocation. Keeping a user from writing to low pages
333 Programs which use vm86 functionality or have some need to map
335 protection by setting the value to 0.
346 bool "Enable recovery from hardware memory errors"
350 Enables code to recover from some memory failures on systems
351 with MCA recovery. This allows a system to continue running
352 even when some of its memory has uncorrected errors. This requires
353 special hardware support and typically ECC memory.
365 The NOMMU mmap() frequently needs to allocate large contiguous chunks
366 of memory on which to store mappings, but it can only ask the system
367 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
368 more than it requires. To deal with this, mmap() is able to trim off
369 the excess and return it to the allocator.
371 If trimming is enabled, the excess is trimmed off and returned to the
376 long-term mappings means that the space is wasted.
381 no trimming is to occur.
386 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
394 Transparent Hugepages allows the kernel to use huge pages and
395 huge tlb transparently to the applications whenever possible.
396 This feature can improve computing performance to certain
397 applications by speeding up page faults during memory
401 If memory constrained on embedded, you may want to say N.
414 memory footprint of applications without a guaranteed
421 performance improvement benefit to the applications using
422 madvise(MADV_HUGEPAGE) but it won't risk to increase the
423 memory footprint of applications without a guaranteed
449 bool "Enable cleancache driver to cache clean pages if tmem is present"
451 Cleancache can be thought of as a page-granularity victim cache
453 (PFRA) would like to keep around, but can't since there isn't enough
454 memory. So when the PFRA "evicts" a page, it first attempts to use
455 cleancache code to put the data contained in that page into
456 "transcendent memory", memory that is not directly accessible or
458 time-varying size. And when a cleancache-enabled
459 filesystem wishes to access a page in a file on disk, it first
460 checks cleancache to see if it already contains it; if it does,
462 When a transcendent memory driver is available (such as zcache or
463 Xen transcendent memory), a significant I/O reduction
465 are reduced to a single pointer-compare-against-NULL resulting
468 If unsure, say Y to enable cleancache
471 bool "Enable frontswap to cache swap pages if tmem is present"
476 "transcendent memory", memory that is not directly accessible or
478 time-varying size. When space in transcendent memory is available,
480 available, all frontswap calls are reduced to a single pointer-
481 compare-against-NULL resulting in a negligible performance hit
484 If unsure, say Y to enable frontswap.
487 bool "Contiguous Memory Allocator"
492 This enables the Contiguous Memory Allocator which allows other
493 subsystems to allocate big physically-contiguous blocks of memory.
494 CMA reserves a region of memory and allows only movable pages to
495 be allocated from it. This way, the kernel can use the memory for
497 allocated pages are migrated away to serve the contiguous request.
502 bool "CMA not active to system"
505 This forbids the CMA to active its pages to system memory, to keep
536 This option exposes some sysfs attributes to get information
545 CMA allows to create CMA areas for particular purpose, mainly,
552 bool "Track memory changes"
556 This option enables memory changes tracking by introducing a
557 soft-dirty bit on pte-s. This bit it set when someone writes
561 See Documentation/admin-guide/mm/soft-dirty.rst for more details.
569 pages that are in the process of being swapped out and attempts to
570 compress them into a dynamically allocated RAM-based memory pool.
576 v3.11) that interacts heavily with memory reclaim. While these
577 interactions don't cause any known issues on simple memory setups,
590 a particular compression algorithm please refer to the benchmarks
699 tristate "Common API for compressed memory storage"
701 Compressed memory storage API. This allows using either zbud or
705 tristate "Low (Up to 2x) density storage for compressed pages"
708 It is designed to store up to two compressed pages per physical
710 deterministic reclaim properties that make it preferable to a higher
714 tristate "Up to 3x density storage for compressed pages"
718 It is designed to store up to three compressed pages per physical
723 tristate "Memory allocator for compressed pages"
726 zsmalloc is a slab-based memory allocator designed to store
727 compressed RAM pages. zsmalloc uses virtual memory mapping
728 in order to reduce fragmentation. However, this results in a
729 non-standard allocator interface where a handle, not a pointer, is
730 returned by an alloc(). This handle must be mapped in order to
738 This option enables code in the zsmalloc to collect various
740 information to userspace via debugfs.
747 int "Maximum user stack size for 32-bit processes (MB)"
752 This is the maximum stack size in Megabytes in the VM layout of 32-bit
754 arch). The stack will be located at the highest memory address minus
755 the given value, unless the RLIMIT_STACK hard limit is changed to a
761 bool "Defer initialisation of struct pages to kthreads"
779 This adds PG_idle and PG_young flags to 'struct page'. PTE Accessed
788 This feature allows to estimate the amount of user pages that have
790 be useful to tune memory cgroup limits and/or for job placement
793 See Documentation/admin-guide/mm/idle_page_tracking.rst for
800 bool "Device memory (pmem, HMM, etc...) hotplug support"
808 Device memory hotplug support allows for establishing pmem,
809 or other device driver discovered memory regions, in the
811 "device-physical" addresses which is needed for using a DAX
820 # Helpers to mirror range of the CPU page tables of a process into device page
828 bool "Unaddressable device memory (GPU memory, ...)"
833 Allows creation of struct pages to represent unaddressable device
834 memory; i.e., memory that is only accessible from the device (or
835 group of devices). You likely also want to select HMM_MIRROR.
849 bool "Collect percpu memory statistics"
853 be used to help understand percpu memory usage.
864 Try to handle user space page faults without holding the mmap_sem.
867 since the page fault handler will not wait for other threads memory
868 layout change to be done, assuming that this change is done in another
869 part of the process's memory space. This type of page fault is named
889 bool "Read-only THP for filesystems (EXPERIMENTAL)"
893 Allow khugepaged to put read-only file-backed pages in THP.
904 # required to support multiple hugepage sizes. For example a4fe3ce76