~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/mm/Kconfig

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /mm/Kconfig (Version linux-6.12-rc7) and /mm/Kconfig (Version linux-2.4.37.11)


  1 # SPDX-License-Identifier: GPL-2.0-only           
  2                                                   
  3 menu "Memory Management options"                  
  4                                                   
  5 #                                                 
  6 # For some reason microblaze and nios2 hard co    
  7 # add proper SWAP support to them, in which ca    
  8 #                                                 
  9 config ARCH_NO_SWAP                               
 10         bool                                      
 11                                                   
 12 config ZPOOL                                      
 13         bool                                      
 14                                                   
 15 menuconfig SWAP                                   
 16         bool "Support for paging of anonymous     
 17         depends on MMU && BLOCK && !ARCH_NO_SW    
 18         default y                                 
 19         help                                      
 20           This option allows you to choose whe    
 21           for so called swap devices or swap f    
 22           used to provide more virtual memory     
 23           in your computer.  If unsure say Y.     
 24                                                   
 25 config ZSWAP                                      
 26         bool "Compressed cache for swap pages"    
 27         depends on SWAP                           
 28         select CRYPTO                             
 29         select ZPOOL                              
 30         help                                      
 31           A lightweight compressed cache for s    
 32           pages that are in the process of bei    
 33           compress them into a dynamically all    
 34           This can result in a significant I/O    
 35           in the case where decompressing from    
 36           reads, can also improve workload per    
 37                                                   
 38 config ZSWAP_DEFAULT_ON                           
 39         bool "Enable the compressed cache for     
 40         depends on ZSWAP                          
 41         help                                      
 42           If selected, the compressed cache fo    
 43           at boot, otherwise it will be disabl    
 44                                                   
 45           The selection made here can be overr    
 46           command line 'zswap.enabled=' option    
 47                                                   
 48 config ZSWAP_SHRINKER_DEFAULT_ON                  
 49         bool "Shrink the zswap pool on memory     
 50         depends on ZSWAP                          
 51         default n                                 
 52         help                                      
 53           If selected, the zswap shrinker will    
 54           stored in the zswap pool will become    
 55           written back to the backing swap dev    
 56                                                   
 57           This means that zswap writeback coul    
 58           not yet full, or the cgroup zswap li    
 59           reducing the chance that cold pages     
 60           and consume memory indefinitely.        
 61                                                   
 62 choice                                            
 63         prompt "Default compressor"               
 64         depends on ZSWAP                          
 65         default ZSWAP_COMPRESSOR_DEFAULT_LZO      
 66         help                                      
 67           Selects the default compression algo    
 68           for swap pages.                         
 69                                                   
 70           For an overview what kind of perform    
 71           a particular compression algorithm p    
 72           available at the following LWN page:    
 73           https://lwn.net/Articles/751795/        
 74                                                   
 75           If in doubt, select 'LZO'.              
 76                                                   
 77           The selection made here can be overr    
 78           command line 'zswap.compressor=' opt    
 79                                                   
 80 config ZSWAP_COMPRESSOR_DEFAULT_DEFLATE           
 81         bool "Deflate"                            
 82         select CRYPTO_DEFLATE                     
 83         help                                      
 84           Use the Deflate algorithm as the def    
 85                                                   
 86 config ZSWAP_COMPRESSOR_DEFAULT_LZO               
 87         bool "LZO"                                
 88         select CRYPTO_LZO                         
 89         help                                      
 90           Use the LZO algorithm as the default    
 91                                                   
 92 config ZSWAP_COMPRESSOR_DEFAULT_842               
 93         bool "842"                                
 94         select CRYPTO_842                         
 95         help                                      
 96           Use the 842 algorithm as the default    
 97                                                   
 98 config ZSWAP_COMPRESSOR_DEFAULT_LZ4               
 99         bool "LZ4"                                
100         select CRYPTO_LZ4                         
101         help                                      
102           Use the LZ4 algorithm as the default    
103                                                   
104 config ZSWAP_COMPRESSOR_DEFAULT_LZ4HC             
105         bool "LZ4HC"                              
106         select CRYPTO_LZ4HC                       
107         help                                      
108           Use the LZ4HC algorithm as the defau    
109                                                   
110 config ZSWAP_COMPRESSOR_DEFAULT_ZSTD              
111         bool "zstd"                               
112         select CRYPTO_ZSTD                        
113         help                                      
114           Use the zstd algorithm as the defaul    
115 endchoice                                         
116                                                   
117 config ZSWAP_COMPRESSOR_DEFAULT                   
118        string                                     
119        depends on ZSWAP                           
120        default "deflate" if ZSWAP_COMPRESSOR_D    
121        default "lzo" if ZSWAP_COMPRESSOR_DEFAU    
122        default "842" if ZSWAP_COMPRESSOR_DEFAU    
123        default "lz4" if ZSWAP_COMPRESSOR_DEFAU    
124        default "lz4hc" if ZSWAP_COMPRESSOR_DEF    
125        default "zstd" if ZSWAP_COMPRESSOR_DEFA    
126        default ""                                 
127                                                   
128 choice                                            
129         prompt "Default allocator"                
130         depends on ZSWAP                          
131         default ZSWAP_ZPOOL_DEFAULT_ZSMALLOC i    
132         default ZSWAP_ZPOOL_DEFAULT_ZBUD          
133         help                                      
134           Selects the default allocator for th    
135           swap pages.                             
136           The default is 'zbud' for compatibil    
137           read the description of each of the     
138           making a right choice.                  
139                                                   
140           The selection made here can be overr    
141           command line 'zswap.zpool=' option.     
142                                                   
143 config ZSWAP_ZPOOL_DEFAULT_ZBUD                   
144         bool "zbud"                               
145         select ZBUD                               
146         help                                      
147           Use the zbud allocator as the defaul    
148                                                   
149 config ZSWAP_ZPOOL_DEFAULT_Z3FOLD_DEPRECATED      
150         bool "z3foldi (DEPRECATED)"               
151         select Z3FOLD_DEPRECATED                  
152         help                                      
153           Use the z3fold allocator as the defa    
154                                                   
155           Deprecated and scheduled for removal    
156           see CONFIG_Z3FOLD_DEPRECATED.           
157                                                   
158 config ZSWAP_ZPOOL_DEFAULT_ZSMALLOC               
159         bool "zsmalloc"                           
160         select ZSMALLOC                           
161         help                                      
162           Use the zsmalloc allocator as the de    
163 endchoice                                         
164                                                   
165 config ZSWAP_ZPOOL_DEFAULT                        
166        string                                     
167        depends on ZSWAP                           
168        default "zbud" if ZSWAP_ZPOOL_DEFAULT_Z    
169        default "z3fold" if ZSWAP_ZPOOL_DEFAULT    
170        default "zsmalloc" if ZSWAP_ZPOOL_DEFAU    
171        default ""                                 
172                                                   
173 config ZBUD                                       
174         tristate "2:1 compression allocator (z    
175         depends on ZSWAP                          
176         help                                      
177           A special purpose allocator for stor    
178           It is designed to store up to two co    
179           page.  While this design limits stor    
180           deterministic reclaim properties tha    
181           density approach when reclaim will b    
182                                                   
183 config Z3FOLD_DEPRECATED                          
184         tristate "3:1 compression allocator (z    
185         depends on ZSWAP                          
186         help                                      
187           Deprecated and scheduled for removal    
188           a good reason for using Z3FOLD over     
189           linux-mm@kvack.org and the zswap mai    
190                                                   
191           A special purpose allocator for stor    
192           It is designed to store up to three     
193           page. It is a ZBUD derivative so the    
194           still there.                            
195                                                   
196 config Z3FOLD                                     
197         tristate                                  
198         default y if Z3FOLD_DEPRECATED=y          
199         default m if Z3FOLD_DEPRECATED=m          
200         depends on Z3FOLD_DEPRECATED              
201                                                   
202 config ZSMALLOC                                   
203         tristate                                  
204         prompt "N:1 compression allocator (zsm    
205         depends on MMU                            
206         help                                      
207           zsmalloc is a slab-based memory allo    
208           pages of various compression levels     
209           the highest storage density with the    
210                                                   
211 config ZSMALLOC_STAT                              
212         bool "Export zsmalloc statistics"         
213         depends on ZSMALLOC                       
214         select DEBUG_FS                           
215         help                                      
216           This option enables code in the zsma    
217           statistics about what's happening in    
218           information to userspace via debugfs    
219           If unsure, say N.                       
220                                                   
221 config ZSMALLOC_CHAIN_SIZE                        
222         int "Maximum number of physical pages     
223         default 8                                 
224         range 4 16                                
225         depends on ZSMALLOC                       
226         help                                      
227           This option sets the upper limit on     
228           that a zmalloc page (zspage) can con    
229           chain size is calculated for each si    
230           initialization of the pool.             
231                                                   
232           Changing this option can alter the c    
233           such as the number of pages per zspa    
234           per zspage. This can also result in     
235           the pool, as zsmalloc merges size cl    
236           characteristics.                        
237                                                   
238           For more information, see zsmalloc d    
239                                                   
240 menu "Slab allocator options"                     
241                                                   
242 config SLUB                                       
243         def_bool y                                
244                                                   
245 config SLUB_TINY                                  
246         bool "Configure for minimal memory foo    
247         depends on EXPERT                         
248         select SLAB_MERGE_DEFAULT                 
249         help                                      
250            Configures the slab allocator in a     
251            footprint, sacrificing scalability,    
252            This is intended only for the small    
253            SLOB allocator and is not recommend    
254            16MB RAM.                              
255                                                   
256            If unsure, say N.                      
257                                                   
258 config SLAB_MERGE_DEFAULT                         
259         bool "Allow slab caches to be merged"     
260         default y                                 
261         help                                      
262           For reduced kernel memory fragmentat    
263           merged when they share the same size    
264           This carries a risk of kernel heap o    
265           overwrite objects from merged caches    
266           cache layout), which makes such heap    
267           by attackers. By keeping caches unme    
268           can usually only damage objects in t    
269           merging at runtime, "slab_nomerge" c    
270           command line.                           
271                                                   
272 config SLAB_FREELIST_RANDOM                       
273         bool "Randomize slab freelist"            
274         depends on !SLUB_TINY                     
275         help                                      
276           Randomizes the freelist order used o    
277           security feature reduces the predict    
278           allocator against heap overflows.       
279                                                   
280 config SLAB_FREELIST_HARDENED                     
281         bool "Harden slab freelist metadata"      
282         depends on !SLUB_TINY                     
283         help                                      
284           Many kernel heap attacks try to targ    
285           other infrastructure. This options m    
286           sacrifices to harden the kernel slab    
287           freelist exploit methods.               
288                                                   
289 config SLAB_BUCKETS                               
290         bool "Support allocation from separate    
291         depends on !SLUB_TINY                     
292         default SLAB_FREELIST_HARDENED            
293         help                                      
294           Kernel heap attacks frequently depen    
295           specifically-sized allocations with     
296           that will be allocated into the same    
297           target object. To avoid sharing thes    
298           provide an explicitly separated set     
299           user-controlled allocations. This ma    
300           memory fragmentation, though in prac    
301           of extra pages since the bulk of use    
302           are relatively long-lived.              
303                                                   
304           If unsure, say Y.                       
305                                                   
306 config SLUB_STATS                                 
307         default n                                 
308         bool "Enable performance statistics"      
309         depends on SYSFS && !SLUB_TINY            
310         help                                      
311           The statistics are useful to debug s    
312           order find ways to optimize the allo    
313           enabled for production use since kee    
314           the allocator by a few percentage po    
315           supports the determination of the mo    
316           out which slabs are relevant to a pa    
317           Try running: slabinfo -DA               
318                                                   
319 config SLUB_CPU_PARTIAL                           
320         default y                                 
321         depends on SMP && !SLUB_TINY              
322         bool "Enable per cpu partial caches"      
323         help                                      
324           Per cpu partial caches accelerate ob    
325           that is local to a processor at the     
326           in the latency of the free. On overf    
327           which requires the taking of locks t    
328           Typically one would choose no for a     
329                                                   
330 config RANDOM_KMALLOC_CACHES                      
331         default n                                 
332         depends on !SLUB_TINY                     
333         bool "Randomize slab caches for normal    
334         help                                      
335           A hardening feature that creates mul    
336           normal kmalloc allocation and makes     
337           on code address, which makes the att    
338           vulnerable memory objects on the hea    
339           memory vulnerabilities.                 
340                                                   
341           Currently the number of copies is se    
342           that effectively diverges the memory    
343           subsystems or modules into different    
344           limited degree of memory and CPU ove    
345           system workload.                        
346                                                   
347 endmenu # Slab allocator options                  
348                                                   
349 config SHUFFLE_PAGE_ALLOCATOR                     
350         bool "Page allocator randomization"       
351         default SLAB_FREELIST_RANDOM && ACPI_N    
352         help                                      
353           Randomization of the page allocator     
354           utilization of a direct-mapped memor    
355           5.2.27 Heterogeneous Memory Attribut    
356           6.2a specification for an example of    
357           the presence of a memory-side-cache.    
358           security benefits as it reduces the     
359           allocations to compliment SLAB_FREEL    
360           default granularity of shuffling on     
361           order of pages is selected based on     
362           on x86.                                 
363                                                   
364           While the randomization improves cac    
365           negatively impact workloads on platf    
366           this reason, by default, the randomi    
367           if SHUFFLE_PAGE_ALLOCATOR=y. The ran    
368           with the 'page_alloc.shuffle' kernel    
369                                                   
370           Say Y if unsure.                        
371                                                   
372 config COMPAT_BRK                                 
373         bool "Disable heap randomization"         
374         default y                                 
375         help                                      
376           Randomizing heap placement makes hea    
377           also breaks ancient binaries (includ    
378           This option changes the bootup defau    
379           disabled, and can be overridden at r    
380           /proc/sys/kernel/randomize_va_space     
381                                                   
382           On non-ancient distros (post-2000 on    
383                                                   
384 config MMAP_ALLOW_UNINITIALIZED                   
385         bool "Allow mmapped anonymous memory t    
386         depends on EXPERT && !MMU                 
387         default n                                 
388         help                                      
389           Normally, and according to the Linux    
390           from mmap() has its contents cleared    
391           userspace.  Enabling this config opt    
392           mmap() skip that if it is given an M    
393           providing a huge performance boost.     
394           then the flag will be ignored.          
395                                                   
396           This is taken advantage of by uClibc    
397           ELF-FDPIC binfmt's brk and stack all    
398                                                   
399           Because of the obvious security issu    
400           enabled on embedded devices where yo    
401           userspace.  Since that isn't general    
402           it is normally safe to say Y here.      
403                                                   
404           See Documentation/admin-guide/mm/nom    
405                                                   
406 config SELECT_MEMORY_MODEL                        
407         def_bool y                                
408         depends on ARCH_SELECT_MEMORY_MODEL       
409                                                   
410 choice                                            
411         prompt "Memory model"                     
412         depends on SELECT_MEMORY_MODEL            
413         default SPARSEMEM_MANUAL if ARCH_SPARS    
414         default FLATMEM_MANUAL                    
415         help                                      
416           This option allows you to change som    
417           Linux manages its memory internally.    
418           only have one option here selected b    
419           configuration. This is normal.          
420                                                   
421 config FLATMEM_MANUAL                             
422         bool "Flat Memory"                        
423         depends on !ARCH_SPARSEMEM_ENABLE || A    
424         help                                      
425           This option is best suited for non-N    
426           flat address space. The FLATMEM is t    
427           system in terms of performance and r    
428           and it is the best option for smalle    
429                                                   
430           For systems that have holes in their    
431           spaces and for features like NUMA an    
432           choose "Sparse Memory".                 
433                                                   
434           If unsure, choose this option (Flat     
435                                                   
436 config SPARSEMEM_MANUAL                           
437         bool "Sparse Memory"                      
438         depends on ARCH_SPARSEMEM_ENABLE          
439         help                                      
440           This will be the only option for som    
441           memory hot-plug systems.  This is no    
442                                                   
443           This option provides efficient suppo    
444           holes is their physical address spac    
445           hot-plug and hot-remove.                
446                                                   
447           If unsure, choose "Flat Memory" over    
448                                                   
449 endchoice                                         
450                                                   
451 config SPARSEMEM                                  
452         def_bool y                                
453         depends on (!SELECT_MEMORY_MODEL && AR    
454                                                   
455 config FLATMEM                                    
456         def_bool y                                
457         depends on !SPARSEMEM || FLATMEM_MANUA    
458                                                   
459 #                                                 
460 # SPARSEMEM_EXTREME (which is the default) doe    
461 # allocations when sparse_init() is called.  I    
462 # be done on your architecture, select this op    
463 # statically allocating the mem_section[] arra    
464 # consume vast quantities of .bss, so be caref    
465 #                                                 
466 # This option will also potentially produce sm    
467 # with gcc 3.4 and later.                         
468 #                                                 
469 config SPARSEMEM_STATIC                           
470         bool                                      
471                                                   
472 #                                                 
473 # Architecture platforms which require a two l    
474 # must select this option. This is usually for    
475 # an extremely sparse physical address space.     
476 #                                                 
477 config SPARSEMEM_EXTREME                          
478         def_bool y                                
479         depends on SPARSEMEM && !SPARSEMEM_STA    
480                                                   
481 config SPARSEMEM_VMEMMAP_ENABLE                   
482         bool                                      
483                                                   
484 config SPARSEMEM_VMEMMAP                          
485         bool "Sparse Memory virtual memmap"       
486         depends on SPARSEMEM && SPARSEMEM_VMEM    
487         default y                                 
488         help                                      
489           SPARSEMEM_VMEMMAP uses a virtually m    
490           pfn_to_page and page_to_pfn operatio    
491           efficient option when sufficient ker    
492 #                                                 
493 # Select this config option from the architect    
494 # to enable the feature of HugeTLB/dev_dax vme    
495 #                                                 
496 config ARCH_WANT_OPTIMIZE_DAX_VMEMMAP             
497         bool                                      
498                                                   
499 config ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP         
500         bool                                      
501                                                   
502 config HAVE_MEMBLOCK_PHYS_MAP                     
503         bool                                      
504                                                   
505 config HAVE_GUP_FAST                              
506         depends on MMU                            
507         bool                                      
508                                                   
509 # Don't discard allocated memory used to track    
510 # after early boot, so it can still be used to    
511 # Also, memblocks are updated with memory hot(    
512 config ARCH_KEEP_MEMBLOCK                         
513         bool                                      
514                                                   
515 # Keep arch NUMA mapping infrastructure post-i    
516 config NUMA_KEEP_MEMINFO                          
517         bool                                      
518                                                   
519 config MEMORY_ISOLATION                           
520         bool                                      
521                                                   
522 # IORESOURCE_SYSTEM_RAM regions in the kernel     
523 # IORESOURCE_EXCLUSIVE cannot be mapped to use    
524 # /dev/mem.                                       
525 config EXCLUSIVE_SYSTEM_RAM                       
526         def_bool y                                
527         depends on !DEVMEM || STRICT_DEVMEM       
528                                                   
529 #                                                 
530 # Only be set on architectures that have compl    
531 # feature. If you are not sure, don't touch it    
532 #                                                 
533 config HAVE_BOOTMEM_INFO_NODE                     
534         def_bool n                                
535                                                   
536 config ARCH_ENABLE_MEMORY_HOTPLUG                 
537         bool                                      
538                                                   
539 config ARCH_ENABLE_MEMORY_HOTREMOVE               
540         bool                                      
541                                                   
542 # eventually, we can have this option just 'se    
543 menuconfig MEMORY_HOTPLUG                         
544         bool "Memory hotplug"                     
545         select MEMORY_ISOLATION                   
546         depends on SPARSEMEM                      
547         depends on ARCH_ENABLE_MEMORY_HOTPLUG     
548         depends on 64BIT                          
549         select NUMA_KEEP_MEMINFO if NUMA          
550                                                   
551 if MEMORY_HOTPLUG                                 
552                                                   
553 config MEMORY_HOTPLUG_DEFAULT_ONLINE              
554         bool "Online the newly added memory bl    
555         depends on MEMORY_HOTPLUG                 
556         help                                      
557           This option sets the default policy     
558           onlining policy (/sys/devices/system    
559           determines what happens to newly add    
560           can always be changed at runtime.       
561           See Documentation/admin-guide/mm/mem    
562                                                   
563           Say Y here if you want all hot-plugg    
564           'online' state by default.              
565           Say N here if you want the default p    
566           memory blocks in 'offline' state.       
567                                                   
568 config MEMORY_HOTREMOVE                           
569         bool "Allow for memory hot remove"        
570         select HAVE_BOOTMEM_INFO_NODE if (X86_    
571         depends on MEMORY_HOTPLUG && ARCH_ENAB    
572         depends on MIGRATION                      
573                                                   
574 config MHP_MEMMAP_ON_MEMORY                       
575         def_bool y                                
576         depends on MEMORY_HOTPLUG && SPARSEMEM    
577         depends on ARCH_MHP_MEMMAP_ON_MEMORY_E    
578                                                   
579 endif # MEMORY_HOTPLUG                            
580                                                   
581 config ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE           
582        bool                                       
583                                                   
584 # Heavily threaded applications may benefit fr    
585 # page_table_lock, so that faults on different    
586 # space can be handled with less contention: s    
587 # Default to 4 for wider testing, though 8 mig    
588 # ARM's adjust_pte (unused if VIPT) depends on    
589 # PA-RISC 7xxx's spinlock_t would enlarge stru    
590 # SPARC32 allocates multiple pte tables within    
591 # a per-page lock leads to problems when multi    
592 # at the same time (e.g. copy_page_range()).      
593 # DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock    
594 #                                                 
595 config SPLIT_PTE_PTLOCKS                          
596         def_bool y                                
597         depends on MMU                            
598         depends on SMP                            
599         depends on NR_CPUS >= 4                   
600         depends on !ARM || CPU_CACHE_VIPT         
601         depends on !PARISC || PA20                
602         depends on !SPARC32                       
603                                                   
604 config ARCH_ENABLE_SPLIT_PMD_PTLOCK               
605         bool                                      
606                                                   
607 config SPLIT_PMD_PTLOCKS                          
608         def_bool y                                
609         depends on SPLIT_PTE_PTLOCKS && ARCH_E    
610                                                   
611 #                                                 
612 # support for memory balloon                      
613 config MEMORY_BALLOON                             
614         bool                                      
615                                                   
616 #                                                 
617 # support for memory balloon compaction           
618 config BALLOON_COMPACTION                         
619         bool "Allow for balloon memory compact    
620         default y                                 
621         depends on COMPACTION && MEMORY_BALLOO    
622         help                                      
623           Memory fragmentation introduced by b    
624           significantly the number of 2MB cont    
625           used within a guest, thus imposing p    
626           with the reduced number of transpare    
627           by the guest workload. Allowing the     
628           pages enlisted as being part of memo    
629           scenario aforementioned and helps im    
630                                                   
631 #                                                 
632 # support for memory compaction                   
633 config COMPACTION                                 
634         bool "Allow for memory compaction"        
635         default y                                 
636         select MIGRATION                          
637         depends on MMU                            
638         help                                      
639           Compaction is the only memory manage    
640           high order (larger physically contig    
641           reliably. The page allocator relies     
642           the lack of the feature can lead to     
643           invocations for high order memory re    
644           disable this option unless there rea    
645           it and then we would be really inter    
646           linux-mm@kvack.org.                     
647                                                   
648 config COMPACT_UNEVICTABLE_DEFAULT                
649         int                                       
650         depends on COMPACTION                     
651         default 0 if PREEMPT_RT                   
652         default 1                                 
653                                                   
654 #                                                 
655 # support for free page reporting                 
656 config PAGE_REPORTING                             
657         bool "Free page reporting"                
658         help                                      
659           Free page reporting allows for the i    
660           free pages from the buddy allocator     
661           those pages to another entity, such     
662           memory can be freed within the host     
663                                                   
664 #                                                 
665 # support for page migration                      
666 #                                                 
667 config MIGRATION                                  
668         bool "Page migration"                     
669         default y                                 
670         depends on (NUMA || ARCH_ENABLE_MEMORY    
671         help                                      
672           Allows the migration of the physical    
673           while the virtual addresses are not     
674           two situations. The first is on NUMA    
675           to the processors accessing. The sec    
676           pages as migration can relocate page    
677           allocation instead of reclaiming.       
678                                                   
679 config DEVICE_MIGRATION                           
680         def_bool MIGRATION && ZONE_DEVICE         
681                                                   
682 config ARCH_ENABLE_HUGEPAGE_MIGRATION             
683         bool                                      
684                                                   
685 config ARCH_ENABLE_THP_MIGRATION                  
686         bool                                      
687                                                   
688 config HUGETLB_PAGE_SIZE_VARIABLE                 
689         def_bool n                                
690         help                                      
691           Allows the pageblock_order value to     
692           HUGETLB_PAGE_ORDER when there are mu    
693           on a platform.                          
694                                                   
695           Note that the pageblock_order cannot    
696           clamped down to MAX_PAGE_ORDER.         
697                                                   
698 config CONTIG_ALLOC                               
699         def_bool (MEMORY_ISOLATION && COMPACTI    
700                                                   
701 config PCP_BATCH_SCALE_MAX                        
702         int "Maximum scale factor of PCP (Per-    
703         default 5                                 
704         range 0 6                                 
705         help                                      
706           In page allocator, PCP (Per-CPU page    
707           batches.  The batch number is scaled    
708           allocation/free throughput.  But too    
709           latency.  This option sets the upper    
710           the maximum latency.                    
711                                                   
712 config PHYS_ADDR_T_64BIT                          
713         def_bool 64BIT                            
714                                                   
715 config BOUNCE                                     
716         bool "Enable bounce buffers"              
717         default y                                 
718         depends on BLOCK && MMU && HIGHMEM        
719         help                                      
720           Enable bounce buffers for devices th    
721           memory available to the CPU. Enabled    
722           selected, but you may say n to overr    
723                                                   
724 config MMU_NOTIFIER                               
725         bool                                      
726         select INTERVAL_TREE                      
727                                                   
728 config KSM                                        
729         bool "Enable KSM for page merging"        
730         depends on MMU                            
731         select XXHASH                             
732         help                                      
733           Enable Kernel Samepage Merging: KSM     
734           of an application's address space th    
735           mergeable.  When it finds pages of i    
736           the many instances by a single page     
737           saving memory until one or another a    
738           Recommended for use with KVM, or wit    
739           See Documentation/mm/ksm.rst for mor    
740           until a program has madvised that an    
741           root has set /sys/kernel/mm/ksm/run     
742                                                   
743 config DEFAULT_MMAP_MIN_ADDR                      
744         int "Low address space to protect from    
745         depends on MMU                            
746         default 4096                              
747         help                                      
748           This is the portion of low virtual m    
749           from userspace allocation.  Keeping     
750           can help reduce the impact of kernel    
751                                                   
752           For most arm64, ppc64 and x86 users     
753           a value of 65536 is reasonable and s    
754           On arm and other archs it should not    
755           Programs which use vm86 functionalit    
756           this low address space will need CAP    
757           protection by setting the value to 0    
758                                                   
759           This value can be changed after boot    
760           /proc/sys/vm/mmap_min_addr tunable.     
761                                                   
762 config ARCH_SUPPORTS_MEMORY_FAILURE               
763         bool                                      
764                                                   
765 config MEMORY_FAILURE                             
766         depends on MMU                            
767         depends on ARCH_SUPPORTS_MEMORY_FAILUR    
768         bool "Enable recovery from hardware me    
769         select MEMORY_ISOLATION                   
770         select RAS                                
771         help                                      
772           Enables code to recover from some me    
773           with MCA recovery. This allows a sys    
774           even when some of its memory has unc    
775           special hardware support and typical    
776                                                   
777 config HWPOISON_INJECT                            
778         tristate "HWPoison pages injector"        
779         depends on MEMORY_FAILURE && DEBUG_KER    
780         select PROC_PAGE_MONITOR                  
781                                                   
782 config NOMMU_INITIAL_TRIM_EXCESS                  
783         int "Turn on mmap() excess space trimm    
784         depends on !MMU                           
785         default 1                                 
786         help                                      
787           The NOMMU mmap() frequently needs to    
788           of memory on which to store mappings    
789           allocator for chunks in 2^N*PAGE_SIZ    
790           more than it requires.  To deal with    
791           the excess and return it to the allo    
792                                                   
793           If trimming is enabled, the excess i    
794           system allocator, which can cause ex    
795           if there are a lot of transient proc    
796                                                   
797           If trimming is disabled, the excess     
798           long-term mappings means that the sp    
799                                                   
800           Trimming can be dynamically controll    
801           (/proc/sys/vm/nr_trim_pages) which s    
802           excess pages there must be before tr    
803           no trimming is to occur.                
804                                                   
805           This option specifies the initial va    
806           of 1 says that all excess pages shou    
807                                                   
808           See Documentation/admin-guide/mm/nom    
809                                                   
810 config ARCH_WANT_GENERAL_HUGETLB                  
811         bool                                      
812                                                   
813 config ARCH_WANTS_THP_SWAP                        
814         def_bool n                                
815                                                   
816 menuconfig TRANSPARENT_HUGEPAGE                   
817         bool "Transparent Hugepage Support"       
818         depends on HAVE_ARCH_TRANSPARENT_HUGEP    
819         select COMPACTION                         
820         select XARRAY_MULTI                       
821         help                                      
822           Transparent Hugepages allows the ker    
823           huge tlb transparently to the applic    
824           This feature can improve computing p    
825           applications by speeding up page fau    
826           allocation, by reducing the number o    
827           up the pagetable walking.               
828                                                   
829           If memory constrained on embedded, y    
830                                                   
831 if TRANSPARENT_HUGEPAGE                           
832                                                   
833 choice                                            
834         prompt "Transparent Hugepage Support s    
835         depends on TRANSPARENT_HUGEPAGE           
836         default TRANSPARENT_HUGEPAGE_ALWAYS       
837         help                                      
838           Selects the sysfs defaults for Trans    
839                                                   
840         config TRANSPARENT_HUGEPAGE_ALWAYS        
841                 bool "always"                     
842         help                                      
843           Enabling Transparent Hugepage always    
844           memory footprint of applications wit    
845           benefit but it will work automatical    
846                                                   
847         config TRANSPARENT_HUGEPAGE_MADVISE       
848                 bool "madvise"                    
849         help                                      
850           Enabling Transparent Hugepage madvis    
851           performance improvement benefit to t    
852           madvise(MADV_HUGEPAGE) but it won't     
853           memory footprint of applications wit    
854           benefit.                                
855                                                   
856         config TRANSPARENT_HUGEPAGE_NEVER         
857                 bool "never"                      
858         help                                      
859           Disable Transparent Hugepage by defa    
860           enabled at runtime via sysfs.           
861 endchoice                                         
862                                                   
863 config THP_SWAP                                   
864         def_bool y                                
865         depends on TRANSPARENT_HUGEPAGE && ARC    
866         help                                      
867           Swap transparent huge pages in one p    
868           XXX: For now, swap cluster backing t    
869           will be split after swapout.            
870                                                   
871           For selection by architectures with     
872                                                   
873 config READ_ONLY_THP_FOR_FS                       
874         bool "Read-only THP for filesystems (E    
875         depends on TRANSPARENT_HUGEPAGE && SHM    
876                                                   
877         help                                      
878           Allow khugepaged to put read-only fi    
879                                                   
880           This is marked experimental because     
881           support of file THPs will be develop    
882           cycles.                                 
883                                                   
884 endif # TRANSPARENT_HUGEPAGE                      
885                                                   
886 #                                                 
887 # The architecture supports pgtable leaves tha    
888 #                                                 
889 config PGTABLE_HAS_HUGE_LEAVES                    
890         def_bool TRANSPARENT_HUGEPAGE || HUGET    
891                                                   
892 # TODO: Allow to be enabled without THP           
893 config ARCH_SUPPORTS_HUGE_PFNMAP                  
894         def_bool n                                
895         depends on TRANSPARENT_HUGEPAGE           
896                                                   
897 config ARCH_SUPPORTS_PMD_PFNMAP                   
898         def_bool y                                
899         depends on ARCH_SUPPORTS_HUGE_PFNMAP &    
900                                                   
901 config ARCH_SUPPORTS_PUD_PFNMAP                   
902         def_bool y                                
903         depends on ARCH_SUPPORTS_HUGE_PFNMAP &    
904                                                   
905 #                                                 
906 # UP and nommu archs use km based percpu alloc    
907 #                                                 
908 config NEED_PER_CPU_KM                            
909         depends on !SMP || !MMU                   
910         bool                                      
911         default y                                 
912                                                   
913 config NEED_PER_CPU_EMBED_FIRST_CHUNK             
914         bool                                      
915                                                   
916 config NEED_PER_CPU_PAGE_FIRST_CHUNK              
917         bool                                      
918                                                   
919 config USE_PERCPU_NUMA_NODE_ID                    
920         bool                                      
921                                                   
922 config HAVE_SETUP_PER_CPU_AREA                    
923         bool                                      
924                                                   
925 config CMA                                        
926         bool "Contiguous Memory Allocator"        
927         depends on MMU                            
928         select MIGRATION                          
929         select MEMORY_ISOLATION                   
930         help                                      
931           This enables the Contiguous Memory A    
932           subsystems to allocate big physicall    
933           CMA reserves a region of memory and     
934           be allocated from it. This way, the     
935           pagecache and when a subsystem reque    
936           allocated pages are migrated away to    
937                                                   
938           If unsure, say "n".                     
939                                                   
940 config CMA_DEBUGFS                                
941         bool "CMA debugfs interface"              
942         depends on CMA && DEBUG_FS                
943         help                                      
944           Turns on the DebugFS interface for C    
945                                                   
946 config CMA_SYSFS                                  
947         bool "CMA information through sysfs in    
948         depends on CMA && SYSFS                   
949         help                                      
950           This option exposes some sysfs attri    
951           from CMA.                               
952                                                   
953 config CMA_AREAS                                  
954         int "Maximum count of the CMA areas"      
955         depends on CMA                            
956         default 20 if NUMA                        
957         default 8                                 
958         help                                      
959           CMA allows to create CMA areas for p    
960           used as device private area. This pa    
961           number of CMA area in the system.       
962                                                   
963           If unsure, leave the default value "    
964                                                   
965 config MEM_SOFT_DIRTY                             
966         bool "Track memory changes"               
967         depends on CHECKPOINT_RESTORE && HAVE_    
968         select PROC_PAGE_MONITOR                  
969         help                                      
970           This option enables memory changes t    
971           soft-dirty bit on pte-s. This bit it    
972           into a page just as regular dirty bi    
973           it can be cleared by hands.             
974                                                   
975           See Documentation/admin-guide/mm/sof    
976                                                   
977 config GENERIC_EARLY_IOREMAP                      
978         bool                                      
979                                                   
980 config STACK_MAX_DEFAULT_SIZE_MB                  
981         int "Default maximum user stack size f    
982         default 100                               
983         range 8 2048                              
984         depends on STACK_GROWSUP && (!64BIT ||    
985         help                                      
986           This is the maximum stack size in Me    
987           user processes when the stack grows     
988           arch) when the RLIMIT_STACK hard lim    
989                                                   
990           A sane initial value is 100 MB.         
991                                                   
992 config DEFERRED_STRUCT_PAGE_INIT                  
993         bool "Defer initialisation of struct p    
994         depends on SPARSEMEM                      
995         depends on !NEED_PER_CPU_KM               
996         depends on 64BIT                          
997         depends on !KMSAN                         
998         select PADATA                             
999         help                                      
1000           Ordinarily all struct pages are ini    
1001           single thread. On very large machin    
1002           amount of time. If this option is s    
1003           a subset of memmap at boot and then    
1004           This has a potential performance im    
1005           lifetime of the system until these     
1006           initialisation.                        
1007                                                  
1008 config PAGE_IDLE_FLAG                            
1009         bool                                     
1010         select PAGE_EXTENSION if !64BIT          
1011         help                                     
1012           This adds PG_idle and PG_young flag    
1013           bit writers can set the state of th    
1014           Accessed bit readers may avoid dist    
1015                                                  
1016 config IDLE_PAGE_TRACKING                        
1017         bool "Enable idle page tracking"         
1018         depends on SYSFS && MMU                  
1019         select PAGE_IDLE_FLAG                    
1020         help                                     
1021           This feature allows to estimate the    
1022           not been touched during a given per    
1023           be useful to tune memory cgroup lim    
1024           within a compute cluster.              
1025                                                  
1026           See Documentation/admin-guide/mm/id    
1027           more details.                          
1028                                                  
1029 # Architectures which implement cpu_dcache_is    
1030 # whether the data caches are aliased (VIVT o    
1031 # aliasing) need to select this.                 
1032 config ARCH_HAS_CPU_CACHE_ALIASING               
1033         bool                                     
1034                                                  
1035 config ARCH_HAS_CACHE_LINE_SIZE                  
1036         bool                                     
1037                                                  
1038 config ARCH_HAS_CURRENT_STACK_POINTER            
1039         bool                                     
1040         help                                     
1041           In support of HARDENED_USERCOPY per    
1042           checking, an architecture-agnostic     
1043           is needed. Once an architecture def    
1044           register alias named "current_stack    
1045           selected.                              
1046                                                  
1047 config ARCH_HAS_PTE_DEVMAP                       
1048         bool                                     
1049                                                  
1050 config ARCH_HAS_ZONE_DMA_SET                     
1051         bool                                     
1052                                                  
1053 config ZONE_DMA                                  
1054         bool "Support DMA zone" if ARCH_HAS_Z    
1055         default y if ARM64 || X86                
1056                                                  
1057 config ZONE_DMA32                                
1058         bool "Support DMA32 zone" if ARCH_HAS    
1059         depends on !X86_32                       
1060         default y if ARM64                       
1061                                                  
1062 config ZONE_DEVICE                               
1063         bool "Device memory (pmem, HMM, etc..    
1064         depends on MEMORY_HOTPLUG                
1065         depends on MEMORY_HOTREMOVE              
1066         depends on SPARSEMEM_VMEMMAP             
1067         depends on ARCH_HAS_PTE_DEVMAP           
1068         select XARRAY_MULTI                      
1069                                                  
1070         help                                     
1071           Device memory hotplug support allow    
1072           or other device driver discovered m    
1073           memmap. This allows pfn_to_page() l    
1074           "device-physical" addresses which i    
1075           mapping in an O_DIRECT operation, a    
1076                                                  
1077           If FS_DAX is enabled, then say Y.      
1078                                                  
1079 #                                                
1080 # Helpers to mirror range of the CPU page tab    
1081 # tables.                                        
1082 #                                                
1083 config HMM_MIRROR                                
1084         bool                                     
1085         depends on MMU                           
1086                                                  
1087 config GET_FREE_REGION                           
1088         bool                                     
1089                                                  
1090 config DEVICE_PRIVATE                            
1091         bool "Unaddressable device memory (GP    
1092         depends on ZONE_DEVICE                   
1093         select GET_FREE_REGION                   
1094                                                  
1095         help                                     
1096           Allows creation of struct pages to     
1097           memory; i.e., memory that is only a    
1098           group of devices). You likely also     
1099                                                  
1100 config VMAP_PFN                                  
1101         bool                                     
1102                                                  
1103 config ARCH_USES_HIGH_VMA_FLAGS                  
1104         bool                                     
1105 config ARCH_HAS_PKEYS                            
1106         bool                                     
1107                                                  
1108 config ARCH_USES_PG_ARCH_2                       
1109         bool                                     
1110 config ARCH_USES_PG_ARCH_3                       
1111         bool                                     
1112                                                  
1113 config VM_EVENT_COUNTERS                         
1114         default y                                
1115         bool "Enable VM event counters for /p    
1116         help                                     
1117           VM event counters are needed for ev    
1118           This option allows the disabling of    
1119           on EXPERT systems.  /proc/vmstat wi    
1120           if VM event counters are disabled.     
1121                                                  
1122 config PERCPU_STATS                              
1123         bool "Collect percpu memory statistic    
1124         help                                     
1125           This feature collects and exposes s    
1126           information includes global and per    
1127           be used to help understand percpu m    
1128                                                  
1129 config GUP_TEST                                  
1130         bool "Enable infrastructure for get_u    
1131         depends on DEBUG_FS                      
1132         help                                     
1133           Provides /sys/kernel/debug/gup_test    
1134           to make ioctl calls that can launch    
1135           the get_user_pages*() and pin_user_    
1136                                                  
1137           These tests include benchmark testi    
1138           get_user_pages*() and pin_user_page    
1139           the non-_fast variants.                
1140                                                  
1141           There is also a sub-test that allow    
1142           of up to eight pages (selected by c    
1143           range of user-space addresses. Thes    
1144           pin_user_pages*(), or pinned via ge    
1145           by other command line arguments.       
1146                                                  
1147           See tools/testing/selftests/mm/gup_    
1148                                                  
1149 comment "GUP_TEST needs to have DEBUG_FS enab    
1150         depends on !GUP_TEST && !DEBUG_FS        
1151                                                  
1152 config GUP_GET_PXX_LOW_HIGH                      
1153         bool                                     
1154                                                  
1155 config DMAPOOL_TEST                              
1156         tristate "Enable a module to run time    
1157         depends on HAS_DMA                       
1158         help                                     
1159           Provides a test module that will al    
1160           various sizes and report how long i    
1161           provide a consistent way to measure    
1162           dma_pool_alloc/free routines affect    
1163                                                  
1164 config ARCH_HAS_PTE_SPECIAL                      
1165         bool                                     
1166                                                  
1167 config MAPPING_DIRTY_HELPERS                     
1168         bool                                     
1169                                                  
1170 config KMAP_LOCAL                                
1171         bool                                     
1172                                                  
1173 config KMAP_LOCAL_NON_LINEAR_PTE_ARRAY           
1174         bool                                     
1175                                                  
1176 # struct io_mapping based helper.  Selected b    
1177 config IO_MAPPING                                
1178         bool                                     
1179                                                  
1180 config MEMFD_CREATE                              
1181         bool "Enable memfd_create() system ca    
1182                                                  
1183 config SECRETMEM                                 
1184         default y                                
1185         bool "Enable memfd_secret() system ca    
1186         depends on ARCH_HAS_SET_DIRECT_MAP       
1187         help                                     
1188           Enable the memfd_secret() system ca    
1189           memory areas visible only in the co    
1190           not mapped to other processes and o    
1191                                                  
1192 config ANON_VMA_NAME                             
1193         bool "Anonymous VMA name support"        
1194         depends on PROC_FS && ADVISE_SYSCALLS    
1195                                                  
1196         help                                     
1197           Allow naming anonymous virtual memo    
1198                                                  
1199           This feature allows assigning names    
1200           names can be later retrieved from /    
1201           and help identifying individual ano    
1202           Assigning a name to anonymous virtu    
1203           area from being merged with adjacen    
1204           difference in their name.              
1205                                                  
1206 config HAVE_ARCH_USERFAULTFD_WP                  
1207         bool                                     
1208         help                                     
1209           Arch has userfaultfd write protecti    
1210                                                  
1211 config HAVE_ARCH_USERFAULTFD_MINOR               
1212         bool                                     
1213         help                                     
1214           Arch has userfaultfd minor fault su    
1215                                                  
1216 menuconfig USERFAULTFD                           
1217         bool "Enable userfaultfd() system cal    
1218         depends on MMU                           
1219         help                                     
1220           Enable the userfaultfd() system cal    
1221           handle page faults in userland.        
1222                                                  
1223 if USERFAULTFD                                   
1224 config PTE_MARKER_UFFD_WP                        
1225         bool "Userfaultfd write protection su    
1226         default y                                
1227         depends on HAVE_ARCH_USERFAULTFD_WP      
1228                                                  
1229         help                                     
1230           Allows to create marker PTEs for us    
1231           purposes.  It is required to enable    
1232           file-backed memory types like shmem    
1233 endif # USERFAULTFD                              
1234                                                  
1235 # multi-gen LRU {                                
1236 config LRU_GEN                                   
1237         bool "Multi-Gen LRU"                     
1238         depends on MMU                           
1239         # make sure folio->flags has enough s    
1240         depends on 64BIT || !SPARSEMEM || SPA    
1241         help                                     
1242           A high performance LRU implementati    
1243           Documentation/admin-guide/mm/multig    
1244                                                  
1245 config LRU_GEN_ENABLED                           
1246         bool "Enable by default"                 
1247         depends on LRU_GEN                       
1248         help                                     
1249           This option enables the multi-gen L    
1250                                                  
1251 config LRU_GEN_STATS                             
1252         bool "Full stats for debugging"          
1253         depends on LRU_GEN                       
1254         help                                     
1255           Do not enable this option unless yo    
1256           from evicted generations for debugg    
1257                                                  
1258           This option has a per-memcg and per    
1259                                                  
1260 config LRU_GEN_WALKS_MMU                         
1261         def_bool y                               
1262         depends on LRU_GEN && ARCH_HAS_HW_PTE    
1263 # }                                              
1264                                                  
1265 config ARCH_SUPPORTS_PER_VMA_LOCK                
1266        def_bool n                                
1267                                                  
1268 config PER_VMA_LOCK                              
1269         def_bool y                               
1270         depends on ARCH_SUPPORTS_PER_VMA_LOCK    
1271         help                                     
1272           Allow per-vma locking during page f    
1273                                                  
1274           This feature allows locking each vi    
1275           handling page faults instead of tak    
1276                                                  
1277 config LOCK_MM_AND_FIND_VMA                      
1278         bool                                     
1279         depends on !STACK_GROWSUP                
1280                                                  
1281 config IOMMU_MM_DATA                             
1282         bool                                     
1283                                                  
1284 config EXECMEM                                   
1285         bool                                     
1286                                                  
1287 config NUMA_MEMBLKS                              
1288         bool                                     
1289                                                  
1290 config NUMA_EMU                                  
1291         bool "NUMA emulation"                    
1292         depends on NUMA_MEMBLKS                  
1293         help                                     
1294           Enable NUMA emulation. A flat machi    
1295           into virtual nodes when booted with    
1296           number of nodes. This is only usefu    
1297                                                  
1298 source "mm/damon/Kconfig"                        
1299                                                  
1300 endmenu                                          
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php