[PATCH 0/6] zsmalloc/zram: configurable zspage size

From: Sergey Senozhatsky
Date: Mon Oct 24 2022 - 13:39:44 EST


Hello,

Some use-cases and/or data patterns may benefit from
larger zspages. Currently the limit on the number of physical
pages that are linked into a zspage is hardcoded to 4. Higher
limit changes key characteristics of a number of the size
clases, improving compactness of the pool and redusing the
amount of memory zsmalloc pool uses.

For instance, the huge size class watermark is currently set
to 3264 bytes. With order 3 zspages we have more normal classe
and huge size watermark becomes 3632. With order 4 zspages
huge size watermark becomes 3840.

Commit #1 has more numbers and some analysis.

Sergey Senozhatsky (6):
zsmalloc: turn zspage order into runtime variable
zsmalloc/zram: pass zspage order to zs_create_pool()
zram: add pool_page_order device attribute
Documentation: document zram pool_page_order attribute
zsmalloc: break out of loop when found perfect zspage order
zsmalloc: make sure we select best zspage size

Documentation/admin-guide/blockdev/zram.rst | 31 +++++--
drivers/block/zram/zram_drv.c | 44 ++++++++-
drivers/block/zram/zram_drv.h | 2 +
include/linux/zsmalloc.h | 15 +++-
mm/zsmalloc.c | 98 +++++++++++++--------
5 files changed, 145 insertions(+), 45 deletions(-)

--
2.38.0.135.g90850a2211-goog