[PATCH 0/5] Implement writeback for zsmalloc

From: Nhat Pham
Date: Wed Oct 26 2022 - 16:06:56 EST


Unlike other zswap’s allocators such as zbud or z3fold, zsmalloc
currently lacks the writeback mechanism. This means that when the zswap
pool is full, it will simply reject further allocations, and the pages
will be written directly to swap.

This series of patches implements writeback for zsmalloc. When the zswap
pool becomes full, zsmalloc will attempt to evict all the compressed
objects in the least-recently used zspages.

There are 5 patches in this series:

Johannes Weiner (1):
zswap: fix writeback lock ordering for zsmalloc

Nhat Pham (4):
zsmalloc: Consolidate zs_pool's migrate_lock and size_class's locks
zsmalloc: Add a LRU to zs_pool to keep track of zspages in LRU order
zsmalloc: Add ops fields to zs_pool to store evict handlers
zsmalloc: Implement writeback mechanism for zsmalloc

mm/zsmalloc.c | 336 ++++++++++++++++++++++++++++++++++++++++----------
mm/zswap.c | 37 +++---
2 files changed, 293 insertions(+), 80 deletions(-)

--
2.30.2