• Home
  • Raw
  • Download

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.
72 File-LRU is a mechanism that put file page in global lru list,
80 Add more attributes in memory cgroup, these attribute is used
81 to show information, shrink memory, swapin page and so on.
84 bool "Enable zswapd thread to reclaim anon pages in background"
91 zram will exchanged to eswap by a certain percentage.
100 bool "Memory reclaim delay accounting"
103 Memory reclaim delay accounting. Never use it as a kernel module.
123 # to represent different areas of memory. This variable allows
124 # those dependencies to exist individually.
156 bool "Sparse Memory virtual memmap"
160 SPARSEMEM_VMEMMAP uses a virtually mapped memmap to optimise
174 # Don't discard allocated memory used to track "memory" and "reserved" memblocks
175 # after early boot, so it can still be used to test for validity of memory.
176 # Also, memblocks are updated with memory hot(un)plug.
180 # Keep arch NUMA mapping infrastructure post-init.
188 # Only be set on architectures that have completely implemented memory hotplug
196 bool "Allow for memory hot-add"
208 bool "Online the newly added memory blocks by default"
211 This option sets the default policy setting for memory hotplug
212 onlining policy (/sys/devices/system/memory/auto_online_blocks) which
213 determines what happens to newly added memory regions. Policy setting
215 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
217 Say Y here if you want all hot-plugged memory blocks to appear in
219 Say N here if you want the default policy to keep all hot-plugged
220 memory blocks in 'offline' state.
223 bool "Allow for memory hot remove"
228 # Heavily threaded applications may benefit from splitting the mm-wide
231 # Default to 4 for wider testing, though 8 might be more appropriate.
232 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
233 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
235 # a per-page lock leads to problems when multiple tables need to be locked
251 # support for memory balloon
256 # support for memory balloon compaction
258 bool "Allow for balloon memory compaction/migration"
262 Memory fragmentation introduced by ballooning might reduce
263 significantly the number of 2MB contiguous memory blocks that can be
266 by the guest workload. Allowing the compaction & migration for memory
267 pages enlisted as being part of memory balloon devices avoids the
268 scenario aforementioned and helps improving memory defragmentation.
271 # support for memory compaction
273 bool "Allow for memory compaction"
278 Compaction is the only memory management component to form
279 high order (larger physically contiguous) memory blocks
281 the lack of the feature can lead to unexpected OOM killer
282 invocations for high order memory requests. You shouldn't
284 it and then we would be really interested to hear about that at
285 linux-mm@kvack.org.
295 those pages to another entity, such as a hypervisor, so that the
296 memory can be freed within the host for other uses.
308 two situations. The first is on NUMA systems to put pages nearer
309 to the processors accessing. The second is when allocating huge
310 pages as migration can relocate pages to satisfy a huge page
331 the full range of memory available to the CPU. Enabled
333 may say n to override this.
357 saving memory until one or another app needs to modify the content.
361 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
364 int "Low address space to protect from user allocation"
368 This is the portion of low virtual memory which should be protected
369 from userspace allocation. Keeping a user from writing to low pages
375 Programs which use vm86 functionality or have some need to map
377 protection by setting the value to 0.
388 bool "Enable recovery from hardware memory errors"
392 Enables code to recover from some memory failures on systems
393 with MCA recovery. This allows a system to continue running
394 even when some of its memory has uncorrected errors. This requires
395 special hardware support and typically ECC memory.
407 The NOMMU mmap() frequently needs to allocate large contiguous chunks
408 of memory on which to store mappings, but it can only ask the system
409 allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
410 more than it requires. To deal with this, mmap() is able to trim off
411 the excess and return it to the allocator.
413 If trimming is enabled, the excess is trimmed off and returned to the
418 long-term mappings means that the space is wasted.
423 no trimming is to occur.
428 See Documentation/admin-guide/mm/nommu-mmap.rst for more information.
436 Transparent Hugepages allows the kernel to use huge pages and
437 huge tlb transparently to the applications whenever possible.
438 This feature can improve computing performance to certain
439 applications by speeding up page faults during memory
443 If memory constrained on embedded, you may want to say N.
456 memory footprint of applications without a guaranteed
463 performance improvement benefit to the applications using
464 madvise(MADV_HUGEPAGE) but it won't risk to increase the
465 memory footprint of applications without a guaranteed
491 bool "Enable cleancache driver to cache clean pages if tmem is present"
493 Cleancache can be thought of as a page-granularity victim cache
495 (PFRA) would like to keep around, but can't since there isn't enough
496 memory. So when the PFRA "evicts" a page, it first attempts to use
497 cleancache code to put the data contained in that page into
498 "transcendent memory", memory that is not directly accessible or
500 time-varying size. And when a cleancache-enabled
501 filesystem wishes to access a page in a file on disk, it first
502 checks cleancache to see if it already contains it; if it does,
504 When a transcendent memory driver is available (such as zcache or
505 Xen transcendent memory), a significant I/O reduction
507 are reduced to a single pointer-compare-against-NULL resulting
510 If unsure, say Y to enable cleancache
513 bool "Enable frontswap to cache swap pages if tmem is present"
518 "transcendent memory", memory that is not directly accessible or
520 time-varying size. When space in transcendent memory is available,
522 available, all frontswap calls are reduced to a single pointer-
523 compare-against-NULL resulting in a negligible performance hit
526 If unsure, say Y to enable frontswap.
529 bool "Contiguous Memory Allocator"
534 This enables the Contiguous Memory Allocator which allows other
535 subsystems to allocate big physically-contiguous blocks of memory.
536 CMA reserves a region of memory and allows only movable pages to
537 be allocated from it. This way, the kernel can use the memory for
539 allocated pages are migrated away to serve the contiguous request.
564 CMA allows to create CMA areas for particular purpose, mainly,
574 If enabled, it will add MIGRATE_CMA to pcp lists and movable
575 allocations with __GFP_CMA flag will use cma areas prior to
581 bool "Track memory changes"
585 This option enables memory changes tracking by introducing a
586 soft-dirty bit on pte-s. This bit it set when someone writes
590 See Documentation/admin-guide/mm/soft-dirty.rst for more details.
598 pages that are in the process of being swapped out and attempts to
599 compress them into a dynamically allocated RAM-based memory pool.
605 v3.11) that interacts heavily with memory reclaim. While these
606 interactions don't cause any known issues on simple memory setups,
619 a particular compression algorithm please refer to the benchmarks
728 tristate "Common API for compressed memory storage"
730 Compressed memory storage API. This allows using either zbud or
734 tristate "Low (Up to 2x) density storage for compressed pages"
737 It is designed to store up to two compressed pages per physical
739 deterministic reclaim properties that make it preferable to a higher
743 tristate "Up to 3x density storage for compressed pages"
747 It is designed to store up to three compressed pages per physical
752 tristate "Memory allocator for compressed pages"
755 zsmalloc is a slab-based memory allocator designed to store
756 compressed RAM pages. zsmalloc uses virtual memory mapping
757 in order to reduce fragmentation. However, this results in a
758 non-standard allocator interface where a handle, not a pointer, is
759 returned by an alloc(). This handle must be mapped in order to
767 This option enables code in the zsmalloc to collect various
769 information to userspace via debugfs.
776 int "Maximum user stack size for 32-bit processes (MB)"
781 This is the maximum stack size in Megabytes in the VM layout of 32-bit
783 arch). The stack will be located at the highest memory address minus
784 the given value, unless the RLIMIT_STACK hard limit is changed to a
790 bool "Defer initialisation of struct pages to kthreads"
809 This feature allows to estimate the amount of user pages that have
811 be useful to tune memory cgroup limits and/or for job placement
814 See Documentation/admin-guide/mm/idle_page_tracking.rst for
821 bool "Device memory (pmem, HMM, etc...) hotplug support"
829 Device memory hotplug support allows for establishing pmem,
830 or other device driver discovered memory regions, in the
832 "device-physical" addresses which is needed for using a DAX
841 # Helpers to mirror range of the CPU page tables of a process into device page
849 bool "Unaddressable device memory (GPU memory, ...)"
854 Allows creation of struct pages to represent unaddressable device
855 memory; i.e., memory that is only accessible from the device (or
856 group of devices). You likely also want to select HMM_MIRROR.
870 bool "Collect percpu memory statistics"
874 be used to help understand percpu memory usage.
888 bool "Read-only THP for filesystems (EXPERIMENTAL)"
892 Allow khugepaged to put read-only file-backed pages in THP.
903 # required to support multiple hugepage sizes. For example a4fe3ce76
919 Allow naming anonymous virtual memory areas.
921 This feature allows assigning names to virtual memory areas. Assigned
923 and help identifying individual anonymous memory areas.
924 Assigning a name to anonymous virtual memory area might prevent that
925 area from being merged with adjacent virtual memory areas due to the
928 # For lmkd to trigger in-kernel lowmem info
931 bool "Low Memory Killer"
937 bool "Low Memory Killer Debug"
952 # Use rss_threshold to monitoring RSS
955 bool "Enable /proc/<pid>/rss and /proc/<pid>/rss_threshold to monitoring RSS"
959 Set a threshold to monitoring RSS in per pid
962 bool "Purgeable memory feature"
970 bool "Purgeable memory debug"
974 Debug info for purgeable memory