[PATCH v4 0/2] mm: zswap: fixes for global shrinker

From: Takero Funaki
Date: Sat Jul 27 2024 - 19:06:54 EST


This series addresses issues in the zswap global shrinker that could not
shrink stored pages. With this series, the shrinker continues to shrink
pages until it reaches the accept threshold more reliably, gives much
higher writeback when the zswap pool limit is hit.

v4 is for cleanup and improvement in code formatting, comments, and
commit logs. No behavioral changes have been made since v3:
https://lore.kernel.org/linux-mm/20240720044127.508042-1-flintglass@xxxxxxxxx/

Changes in v4:
- Updated comments and commit logs to clarify expected behaviors (Yosry,
Nhat)
- Merged duplicated spin_unlock() in if branches (Nhat)
- Renamed writeback attempts counter (Nhat, Chengming)

Changes in v3:
- Extract fixes for shrinker as a separate patch series.
- Fix comments and commit messages. (Chengming, Yosry)
- Drop logic to detect rare doubly advancing cursor. (Yosry)

Changes in v2:
mm: zswap: fix global shrinker memcg iteration:
- Change the loop style (Yosry, Nhat, Shakeel)
mm: zswap: fix global shrinker error handling logic:
- Change error code for no-writeback memcg. (Yosry)
- Use nr_scanned to check if lru is empty. (Yosry)

Changes in v1:
mm: zswap: fix global shrinker memcg iteration:
- Drop and reacquire spinlock before skipping a memcg.
- Add some comment to clarify the locking mechanism.

---

Takero Funaki (2):
mm: zswap: fix global shrinker memcg iteration
mm: zswap: fix global shrinker error handling logic

mm/zswap.c | 112 +++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 82 insertions(+), 30 deletions(-)

--
2.43.0