Lines Matching +full:memory +full:- +full:to +full:- +full:memory
2 menu "Memory Management options"
9 prompt "Memory model"
16 bool "Flat Memory"
19 This option allows you to change some of the ways that
20 Linux manages its memory internally. Most users will
25 memory hotplug may have different options here.
27 but is incompatible with memory hotplug and may suffer
29 "Sparse Memory" and "Discontiguous Memory", choose
30 "Discontiguous Memory".
32 If unsure, choose this option (Flat Memory) over any other.
35 bool "Discontiguous Memory"
39 memory systems, over FLATMEM. These systems have holes
48 If unsure, choose "Flat Memory" over this option.
51 bool "Sparse Memory"
55 memory hotplug systems. This is normal.
57 For many other systems, this will be an alternative to
58 "Discontiguous Memory". This option provides some potential
62 If unsure, choose "Discontiguous Memory" or "Flat Memory"
85 # to represent different areas of memory. This variable allows
86 # those dependencies to exist individually.
122 bool "Sparse Memory virtual memmap"
126 SPARSEMEM_VMEMMAP uses a virtually mapped memmap to optimise
152 # Only be set on architectures that have completely implemented memory hotplug
160 bool "Allow for memory hot-add"
169 bool "Online the newly added memory blocks by default"
173 This option sets the default policy setting for memory hotplug
174 onlining policy (/sys/devices/system/memory/auto_online_blocks) which
175 determines what happens to newly added memory regions. Policy setting
177 See Documentation/memory-hotplug.txt for more information.
179 Say Y here if you want all hot-plugged memory blocks to appear in
181 Say N here if you want the default policy to keep all hot-plugged
182 memory blocks in 'offline' state.
185 bool "Allow for memory hot remove"
191 # Heavily threaded applications may benefit from splitting the mm-wide
194 # Default to 4 for wider testing, though 8 might be more appropriate.
195 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
196 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
210 # support for memory balloon
215 # support for memory balloon compaction
217 bool "Allow for balloon memory compaction/migration"
221 Memory fragmentation introduced by ballooning might reduce
222 significantly the number of 2MB contiguous memory blocks that can be
225 by the guest workload. Allowing the compaction & migration for memory
226 pages enlisted as being part of memory balloon devices avoids the
227 scenario aforementioned and helps improving memory defragmentation.
230 # support for memory compaction
232 bool "Allow for memory compaction"
237 Compaction is the only memory management component to form
238 high order (larger physically contiguous) memory blocks
240 the lack of the feature can lead to unexpected OOM killer
241 invocations for high order memory requests. You shouldn't
243 it and then we would be really interested to hear about that at
244 linux-mm@kvack.org.
256 two situations. The first is on NUMA systems to put pages nearer
257 to the processors accessing. The second is when allocating huge
258 pages as migration can relocate pages to satisfy a huge page
276 the full range of memory available to the CPU. Enabled
278 may say n to override this.
305 saving memory until one or another app needs to modify the content.
309 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
312 int "Low address space to protect from user allocation"
316 This is the portion of low virtual memory which should be protected
317 from userspace allocation. Keeping a user from writing to low pages
323 Programs which use vm86 functionality or have some need to map
325 protection by setting the value to 0.
336 bool "Enable recovery from hardware memory errors"
340 Enables code to recover from some memory failures on systems
341 with MCA recovery. This allows a system to continue running
342 even when some of its memory has uncorrected errors. This requires
343 special hardware support and typically ECC memory.
355 The NOMMU mmap() frequently needs to allocate large contiguous chunks
356 of memory on which to store mappings, but it can only ask the system
357 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
358 more than it requires. To deal with this, mmap() is able to trim off
359 the excess and return it to the allocator.
361 If trimming is enabled, the excess is trimmed off and returned to the
366 long-term mappings means that the space is wasted.
371 no trimming is to occur.
376 See Documentation/nommu-mmap.txt for more information.
384 Transparent Hugepages allows the kernel to use huge pages and
385 huge tlb transparently to the applications whenever possible.
386 This feature can improve computing performance to certain
387 applications by speeding up page faults during memory
391 If memory constrained on embedded, you may want to say N.
404 memory footprint of applications without a guaranteed
411 performance improvement benefit to the applications using
412 madvise(MADV_HUGEPAGE) but it won't risk to increase the
413 memory footprint of applications without a guaranteed
443 bool "Enable cleancache driver to cache clean pages if tmem is present"
446 Cleancache can be thought of as a page-granularity victim cache
448 (PFRA) would like to keep around, but can't since there isn't enough
449 memory. So when the PFRA "evicts" a page, it first attempts to use
450 cleancache code to put the data contained in that page into
451 "transcendent memory", memory that is not directly accessible or
453 time-varying size. And when a cleancache-enabled
454 filesystem wishes to access a page in a file on disk, it first
455 checks cleancache to see if it already contains it; if it does,
457 When a transcendent memory driver is available (such as zcache or
458 Xen transcendent memory), a significant I/O reduction
460 are reduced to a single pointer-compare-against-NULL resulting
463 If unsure, say Y to enable cleancache
466 bool "Enable frontswap to cache swap pages if tmem is present"
472 "transcendent memory", memory that is not directly accessible or
474 time-varying size. When space in transcendent memory is available,
476 available, all frontswap calls are reduced to a single pointer-
477 compare-against-NULL resulting in a negligible performance hit
480 If unsure, say Y to enable frontswap.
483 bool "Contiguous Memory Allocator"
488 This enables the Contiguous Memory Allocator which allows other
489 subsystems to allocate big physically-contiguous blocks of memory.
490 CMA reserves a region of memory and allows only movable pages to
491 be allocated from it. This way, the kernel can use the memory for
493 allocated pages are migrated away to serve the contiguous request.
517 CMA allows to create CMA areas for particular purpose, mainly,
524 bool "Track memory changes"
528 This option enables memory changes tracking by introducing a
529 soft-dirty bit on pte-s. This bit it set when someone writes
533 See Documentation/admin-guide/mm/soft-dirty.rst for more details.
543 pages that are in the process of being swapped out and attempts to
544 compress them into a dynamically allocated RAM-based memory pool.
550 v3.11) that interacts heavily with memory reclaim. While these
551 interactions don't cause any known issues on simple memory setups,
556 tristate "Common API for compressed memory storage"
559 Compressed memory storage API. This allows using either zbud or
563 tristate "Low (Up to 2x) density storage for compressed pages"
567 It is designed to store up to two compressed pages per physical
569 deterministic reclaim properties that make it preferable to a higher
573 tristate "Up to 3x density storage for compressed pages"
578 It is designed to store up to three compressed pages per physical
583 tristate "Memory allocator for compressed pages"
587 zsmalloc is a slab-based memory allocator designed to store
588 compressed RAM pages. zsmalloc uses virtual memory mapping
589 in order to reduce fragmentation. However, this results in a
590 non-standard allocator interface where a handle, not a pointer, is
591 returned by an alloc(). This handle must be mapped in order to
595 bool "Use page table mapping to access object in zsmalloc"
598 By default, zsmalloc uses a copy-based object mapping method to
601 then you should select this. This causes zsmalloc to use page table
612 This option enables code in the zsmalloc to collect various
614 information to userspace via debugfs.
621 int "Maximum user stack size for 32-bit processes (MB)"
626 This is the maximum stack size in Megabytes in the VM layout of 32-bit
628 arch). The stack will be located at the highest memory address minus
629 the given value, unless the RLIMIT_STACK hard limit is changed to a
635 bool "Defer initialisation of struct pages to kthreads"
646 by starting one-off "pgdatinitX" kernel thread for each node X. This
656 This feature allows to estimate the amount of user pages that have
658 be useful to tune memory cgroup limits and/or for job placement
661 See Documentation/admin-guide/mm/idle_page_tracking.rst for
664 # arch_add_memory() comprehends device memory
669 bool "Device memory (pmem, HMM, etc...) hotplug support"
677 Device memory hotplug support allows for establishing pmem,
678 or other device driver discovered memory regions, in the
680 "device-physical" addresses which is needed for using a DAX
711 Select HMM_MIRROR if you want to mirror range of the CPU page table of a
713 Prerequisites: the device must provide the ability to write-protect its
714 page tables (at PAGE_SIZE granularity), and must be able to recover from
718 bool "Unaddressable device memory (GPU memory, ...)"
724 Allows creation of struct pages to represent unaddressable device
725 memory; i.e., memory that is only accessible from the device (or
726 group of devices). You likely also want to select HMM_MIRROR.
729 bool "Addressable device memory (like GPU memory)"
735 Allows creation of struct pages to represent addressable device
736 memory; i.e., memory that is accessible from both the device and
748 bool "Collect percpu memory statistics"
753 be used to help understand percpu memory usage.