Commit 2a05c58b authored by Mike Rapoport's avatar Mike Rapoport Committed by Jonathan Corbet

docs/vm: zsmalloc.txt: convert to ReST format

Signed-off-by: default avatarMike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 44bc09eb
.. _zsmalloc:
========
zsmalloc zsmalloc
-------- ========
This allocator is designed for use with zram. Thus, the allocator is This allocator is designed for use with zram. Thus, the allocator is
supposed to work well under low memory conditions. In particular, it supposed to work well under low memory conditions. In particular, it
...@@ -31,40 +34,49 @@ be mapped using zs_map_object() to get a usable pointer and subsequently ...@@ -31,40 +34,49 @@ be mapped using zs_map_object() to get a usable pointer and subsequently
unmapped using zs_unmap_object(). unmapped using zs_unmap_object().
stat stat
---- ====
With CONFIG_ZSMALLOC_STAT, we could see zsmalloc internal information via With CONFIG_ZSMALLOC_STAT, we could see zsmalloc internal information via
/sys/kernel/debug/zsmalloc/<user name>. Here is a sample of stat output: ``/sys/kernel/debug/zsmalloc/<user name>``. Here is a sample of stat output::
# cat /sys/kernel/debug/zsmalloc/zram0/classes # cat /sys/kernel/debug/zsmalloc/zram0/classes
class size almost_full almost_empty obj_allocated obj_used pages_used pages_per_zspage class size almost_full almost_empty obj_allocated obj_used pages_used pages_per_zspage
.. ...
.. ...
9 176 0 1 186 129 8 4 9 176 0 1 186 129 8 4
10 192 1 0 2880 2872 135 3 10 192 1 0 2880 2872 135 3
11 208 0 1 819 795 42 2 11 208 0 1 819 795 42 2
12 224 0 1 219 159 12 4 12 224 0 1 219 159 12 4
.. ...
.. ...
class
index
size
object size zspage stores
almost_empty
the number of ZS_ALMOST_EMPTY zspages(see below)
almost_full
the number of ZS_ALMOST_FULL zspages(see below)
obj_allocated
the number of objects allocated
obj_used
the number of objects allocated to the user
pages_used
the number of pages allocated for the class
pages_per_zspage
the number of 0-order pages to make a zspage
class: index We assign a zspage to ZS_ALMOST_EMPTY fullness group when n <= N / f, where
size: object size zspage stores
almost_empty: the number of ZS_ALMOST_EMPTY zspages(see below)
almost_full: the number of ZS_ALMOST_FULL zspages(see below)
obj_allocated: the number of objects allocated
obj_used: the number of objects allocated to the user
pages_used: the number of pages allocated for the class
pages_per_zspage: the number of 0-order pages to make a zspage
We assign a zspage to ZS_ALMOST_EMPTY fullness group when: * n = number of allocated objects
n <= N / f, where * N = total number of objects zspage can store
n = number of allocated objects * f = fullness_threshold_frac(ie, 4 at the moment)
N = total number of objects zspage can store
f = fullness_threshold_frac(ie, 4 at the moment)
Similarly, we assign zspage to: Similarly, we assign zspage to:
ZS_ALMOST_FULL when n > N / f
ZS_EMPTY when n == 0 * ZS_ALMOST_FULL when n > N / f
ZS_FULL when n == N * ZS_EMPTY when n == 0
* ZS_FULL when n == N
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment