[PATCH mm-new v3 0/2] mm: zswap: add per-memcg stat for incompressible pages
From: Jiayuan Chen
Date: Fri Feb 13 2026 - 02:19:57 EST
In containerized environments, knowing which cgroup is contributing
incompressible pages to zswap is essential for effective resource
management. This series adds a new per-memcg stat 'zswap_incomp' to
track incompressible pages, along with a selftest.
Patch 1: Add the per-memcg zswap_incomp stat and documentation
Patch 2: Add selftest for the new stat
Changes v2 -> v3:
https://lore.kernel.org/linux-mm/20260206072220.144008-1-jiayuan.chen@xxxxxxxxx/
- Remove inline comments for incompressibility check (Yosry Ahmed)
- Use PAGE_SIZE instead of hardcoded 4096 in selftest (SeongJae Park)
- Use pipe for parent-child synchronization instead of usleep
(JP Kobryn, SeongJae Park)
- Use MADV_PAGEOUT instead of memory.reclaim to push pages into zswap,
and use mmap instead of malloc accordingly (Nhat Pham)
- Collect Reviewed-by and Acked-by tags
Changes v1 -> v2:
https://lore.kernel.org/linux-mm/20260205053013.25134-1-jiayuan.chen@xxxxxxxxx/
- Rename zswpraw/MEMCG_ZSWAP_RAW to zswap_incomp/MEMCG_ZSWAP_INCOMP
(Shakeel Butt, Yosry Ahmed)
- Drop zswap_is_incomp() helper, keep opencode (size == PAGE_SIZE) with
comments explaining the incompressibility check (Yosry Ahmed)
- Add documentation in cgroup-v2.rst (Nhat Pham, SeongJae Park)
- Add selftest as a separate patch (Nhat Pham)
- Add reference link to Chris Li's discussion on the need for per-memcg
incompressible page tracking (Nhat Pham)
Jiayuan Chen (2):
mm: zswap: add per-memcg stat for incompressible pages
selftests/cgroup: add test for zswap incompressible pages
Documentation/admin-guide/cgroup-v2.rst | 5 +
include/linux/memcontrol.h | 1 +
mm/memcontrol.c | 6 +
tools/testing/selftests/cgroup/test_zswap.c | 136 ++++++++++++++++++++
4 files changed, 148 insertions(+)
--
2.43.0