mbox series

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

Message ID 20240727230635.3170-1-flintglass@gmail.com (mailing list archive)
Headers show
Series mm: zswap: fixes for global shrinker | expand

Message

Takero Funaki July 27, 2024, 11:06 p.m. UTC
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@gmail.com/

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(-)