| 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 |