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/[email protected]/ - 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/[email protected]/ - 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
