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