diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/init/Kconfig b/init/Kconfig index 29d9e47ee0da..7ce952052947 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -478,15 +478,6 @@ config SHMEM | |||
478 | option replaces shmem and tmpfs with the much simpler ramfs code, | 478 | option replaces shmem and tmpfs with the much simpler ramfs code, |
479 | which may be appropriate on small systems without swap. | 479 | which may be appropriate on small systems without swap. |
480 | 480 | ||
481 | config SLAB | ||
482 | default y | ||
483 | bool "Use full SLAB allocator" if (EMBEDDED && !SMP && !SPARSEMEM) | ||
484 | help | ||
485 | Disabling this replaces the advanced SLAB allocator and | ||
486 | kmalloc support with the drastically simpler SLOB allocator. | ||
487 | SLOB is more space efficient but does not scale well and is | ||
488 | more susceptible to fragmentation. | ||
489 | |||
490 | config VM_EVENT_COUNTERS | 481 | config VM_EVENT_COUNTERS |
491 | default y | 482 | default y |
492 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED | 483 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED |
@@ -496,6 +487,46 @@ config VM_EVENT_COUNTERS | |||
496 | on EMBEDDED systems. /proc/vmstat will only show page counts | 487 | on EMBEDDED systems. /proc/vmstat will only show page counts |
497 | if VM event counters are disabled. | 488 | if VM event counters are disabled. |
498 | 489 | ||
490 | choice | ||
491 | prompt "Choose SLAB allocator" | ||
492 | default SLAB | ||
493 | help | ||
494 | This option allows to select a slab allocator. | ||
495 | |||
496 | config SLAB | ||
497 | bool "SLAB" | ||
498 | help | ||
499 | The regular slab allocator that is established and known to work | ||
500 | well in all environments. It organizes chache hot objects in | ||
501 | per cpu and per node queues. SLAB is the default choice for | ||
502 | slab allocator. | ||
503 | |||
504 | config SLUB | ||
505 | depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT | ||
506 | bool "SLUB (Unqueued Allocator)" | ||
507 | help | ||
508 | SLUB is a slab allocator that minimizes cache line usage | ||
509 | instead of managing queues of cached objects (SLAB approach). | ||
510 | Per cpu caching is realized using slabs of objects instead | ||
511 | of queues of objects. SLUB can use memory efficiently | ||
512 | way and has enhanced diagnostics. | ||
513 | |||
514 | config SLOB | ||
515 | # | ||
516 | # SLOB cannot support SMP because SLAB_DESTROY_BY_RCU does not work | ||
517 | # properly. | ||
518 | # | ||
519 | depends on EMBEDDED && !SMP && !SPARSEMEM | ||
520 | bool "SLOB (Simple Allocator)" | ||
521 | help | ||
522 | SLOB replaces the SLAB allocator with a drastically simpler | ||
523 | allocator. SLOB is more space efficient that SLAB but does not | ||
524 | scale well (single lock for all operations) and is more susceptible | ||
525 | to fragmentation. SLOB it is a great choice to reduce | ||
526 | memory usage and code size for embedded systems. | ||
527 | |||
528 | endchoice | ||
529 | |||
499 | endmenu # General setup | 530 | endmenu # General setup |
500 | 531 | ||
501 | config RT_MUTEXES | 532 | config RT_MUTEXES |
@@ -511,10 +542,6 @@ config BASE_SMALL | |||
511 | default 0 if BASE_FULL | 542 | default 0 if BASE_FULL |
512 | default 1 if !BASE_FULL | 543 | default 1 if !BASE_FULL |
513 | 544 | ||
514 | config SLOB | ||
515 | default !SLAB | ||
516 | bool | ||
517 | |||
518 | menu "Loadable module support" | 545 | menu "Loadable module support" |
519 | 546 | ||
520 | config MODULES | 547 | config MODULES |