v2
2026-09-03
移除memcg v1 soft limit · v2
删除memcg v1软限制及reclaim、rbtree、tracepoint、per-node字段,简化事件限速。
原始补丁链接
子 Patch(8)
1/8
memcg: remove v1 soft limit reclaim
soft limit rbtree 已无插入者,回收恒空;删 memcg1_soft_limit_reclaim() 及 direct/kswapd 调用,并清理 shrink_zones() 冗余 last_pgdat 判断。
2/8
memcg: remove mem_cgroup_shrink_node()
mem_cgroup_shrink_node() 的唯一调用者 soft limit reclaim 已删除,该函数成为死代码,整体移除。
3/8
memcg: remove the soft limit reclaim tracepoints
mm_vmscan_memcg_softlimit_reclaim_begin/end 只由 mem_cgroup_shrink_node() 发射,函数删除后 tracepoint 无法触发,故移除。
4/8
memcg: remove the soft limit rbtree
soft limit rbtree 已无读者;删除树结构、维护 helper 和为其分配的 subsys_initcall,同时 memcg1_check_events() 不再喂养它。
5/8
memcg: remove lru_gen_soft_reclaim()
删除 lru_gen_soft_reclaim();其唯一调用者 soft limit rbtree 已移除,进一步清掉 MEMCG_LRU_HEAD 操作并更新注释。
6/8
memcg: remove the per-node soft limit tree fields
删除 mem_cgroup_per_node 中仅为 soft limit rbtree 使用的 tree_node/usage_in_excess/on_tree,改用显式 padding 维持缓存行隔离。
7/8
memcg: remove mem_cgroup->soft_limit
删除 mem_cgroup->soft_limit 字段及 css alloc/reset 中重置它的 helper;该字段已无任何读端,纯死代码。
8/8
memcg: simplify v1 event ratelimiting
memcg v1 周期事件只剩 threshold,target 枚举/per-cpu 数组/switch 折叠为单计数器;memcg1_check_events() 不再需要 node id,去除 uncharge_gather.nid。