[PATCH 0/3] mm: zswap: global shrinker fix and proactive shrink

From: Takero Funaki
Date: Tue May 28 2024 - 00:34:46 EST


Hello,

This series addresses two issues and introduces a minor improvement in
the zswap global shrinker:

1. Fix the memcg iteration logic that breaks iteration on offline
memcgs.
2. Fix the error path that aborts on expected error codes.
3. Add proactive shrinking at 95% full, for 90% accept threshold.

These patches need to be applied in this order to avoid potential loops
caused by the first issue. Patch 3 can be applied independently, but the
two issues must be resolved to ensure the shrinker can evict pages.

With this series applied, the shrinker will continue to evict pages
until accept_threshold_percent proactively as documented in patch 3. As
a side effect of changes in the hysteresis logic, zswap will no longer
reject pages under the max pool limit.

Regards,
Takero Funaki <flintglass@xxxxxxxxx>

Takero Funaki (3):
mm: zswap: fix global shrinker memcg iteration
mm: zswap: fix global shrinker error handling logic
mm: zswap: proactive shrinking before pool size limit is hit

Documentation/admin-guide/mm/zswap.rst | 17 ++-
mm/zswap.c | 156 ++++++++++++++++++-------
2 files changed, 119 insertions(+), 54 deletions(-)

--
2.43.0