v3
2026-10-29
缓解 lruvec 统计的缓存行竞争 · v3
重排 mem_cgroup_per_node 冷热字段,让 folio/kmem 统计绕过 lruvec 以减少伪共享。
原始补丁链接
子 Patch(2)
1/2
memcg: reduce cacheline contention between lruvec stat updates and LRU lists
调整 struct mem_cgroup_per_node 的 cacheline 布局,隔离 memcg_pn_read_mostly 与 LRU list heads,避免 128B 预取把 lru_lock 写热点带入 stat 更新,减少跨核失效和锁持有者等待。
2/2
memcg: don't go through the lruvec for folio and kmem lruvec stat updates
让 lruvec_stat_mod_folio() 和 mod_lruvec_kmem_state() 直接调 mod_memcg_node_state(),传入已有 memcg/node,避免 mem_cgroup_lruvec() 回读 lruvec->pgdat 而触碰到与 lru_lock 共享预取对的缓存行。