diff options
Diffstat (limited to 'mm/Kconfig')
-rw-r--r-- | mm/Kconfig | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mm/Kconfig b/mm/Kconfig index 723bbe04a0b0..2d9f1504d75e 100644 --- a/mm/Kconfig +++ b/mm/Kconfig | |||
@@ -552,3 +552,28 @@ config MEM_SOFT_DIRTY | |||
552 | it can be cleared by hands. | 552 | it can be cleared by hands. |
553 | 553 | ||
554 | See Documentation/vm/soft-dirty.txt for more details. | 554 | See Documentation/vm/soft-dirty.txt for more details. |
555 | |||
556 | config ZSMALLOC | ||
557 | bool "Memory allocator for compressed pages" | ||
558 | depends on MMU | ||
559 | default n | ||
560 | help | ||
561 | zsmalloc is a slab-based memory allocator designed to store | ||
562 | compressed RAM pages. zsmalloc uses virtual memory mapping | ||
563 | in order to reduce fragmentation. However, this results in a | ||
564 | non-standard allocator interface where a handle, not a pointer, is | ||
565 | returned by an alloc(). This handle must be mapped in order to | ||
566 | access the allocated space. | ||
567 | |||
568 | config PGTABLE_MAPPING | ||
569 | bool "Use page table mapping to access object in zsmalloc" | ||
570 | depends on ZSMALLOC | ||
571 | help | ||
572 | By default, zsmalloc uses a copy-based object mapping method to | ||
573 | access allocations that span two pages. However, if a particular | ||
574 | architecture (ex, ARM) performs VM mapping faster than copying, | ||
575 | then you should select this. This causes zsmalloc to use page table | ||
576 | mapping rather than copying for object mapping. | ||
577 | |||
578 | You can check speed with zsmalloc benchmark[1]. | ||
579 | [1] https://github.com/spartacus06/zsmalloc | ||