v3
2026-09-10
nokmem 下恢复按 memcg 回收 · v3
Qinyun Tan 修复 memcg 相关 shrinker 的 SHRINKER_NONSLAB 标记,调整 list_lru 索引和 nokmem 处理。
原始补丁链接
子 Patch(4)
1/4
mm: memcontrol: drop kmemcg_id and use mem_cgroup_id() for list_lru indexing
list_lru 索引改用 mem_cgroup_id() 替代 kmemcg_id,让 nokmem 下也能按 memcg 区分链表;并简化 memcg online/offline 钩子与 reparent 逻辑。
2/4
mm: list_lru: keep per-memcg lists with nokmem for NONSLAB-backed lrus
nokmem 下 __list_lru_init() 对 slab 后端仍折叠为 per-node;对 SHRINKER_NONSLAB 后端如 THP、zswap 保留 per-memcg 链表,恢复 memcg 定向回收。
3/4
mm: thp: restore SHRINKER_NONSLAB on the deferred split shrinker
恢复 deferred split shrinker 的 SHRINKER_NONSLAB,使 nokmem 下 memcg 限流回收也能拆分部分解映射的 THP,避免只在全局回收才处理。
4/4
mm: zswap: mark the zswap shrinker SHRINKER_NONSLAB
给 zswap shrinker 加 SHRINKER_NONSLAB,纠正 nokmem 下被当作 slab shrinker 而丢 memcg 感知;使其能由 memcg 回收触发写回。