|
@@ -552,3 +552,28 @@ config MEM_SOFT_DIRTY
|
|
|
it can be cleared by hands.
|
|
|
|
|
|
See Documentation/vm/soft-dirty.txt for more details.
|
|
|
+
|
|
|
+config ZSMALLOC
|
|
|
+ bool "Memory allocator for compressed pages"
|
|
|
+ depends on MMU
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ zsmalloc is a slab-based memory allocator designed to store
|
|
|
+ compressed RAM pages. zsmalloc uses virtual memory mapping
|
|
|
+ in order to reduce fragmentation. However, this results in a
|
|
|
+ non-standard allocator interface where a handle, not a pointer, is
|
|
|
+ returned by an alloc(). This handle must be mapped in order to
|
|
|
+ access the allocated space.
|
|
|
+
|
|
|
+config PGTABLE_MAPPING
|
|
|
+ bool "Use page table mapping to access object in zsmalloc"
|
|
|
+ depends on ZSMALLOC
|
|
|
+ help
|
|
|
+ By default, zsmalloc uses a copy-based object mapping method to
|
|
|
+ access allocations that span two pages. However, if a particular
|
|
|
+ architecture (ex, ARM) performs VM mapping faster than copying,
|
|
|
+ then you should select this. This causes zsmalloc to use page table
|
|
|
+ mapping rather than copying for object mapping.
|
|
|
+
|
|
|
+ You can check speed with zsmalloc benchmark[1].
|
|
|
+ [1] https://github.com/spartacus06/zsmalloc
|