64 个核同时读同一页文件,每秒只剩 1330 万次;Linus 用 10 个补丁砍掉 read() 里的一次原子加减,人工基准上冲到 3.04 亿次、快 23 倍。真实源码拆开:引用计数为什么会让缓存行在核间弹跳,RCU 宽限期凭什么允许不取引用就拷贝。
本期内容
旧路径 folio_try_get 与 folio_put 两次原子操作如何把 64 核串成一条线
引用一归零内存立刻回收,为什么不能直接去掉引用
PG_rcu_free 标志位:只给读过 4~6 次的热页承诺延迟释放
标志位、槽位、内容三个 load 的顺序为什么不能换
每 CPU pending/batch 两条链表、1024 页加急与 OOM 前排空三道阀门
评审中 Kiryl Shutsemau 发现的 i_size 竞态与修复
优化技法清单与 MVCC、LongAdder、lazyfree 等跨栈同款
适合学习 Linux 内存管理、无锁并发和性能优化的开发者。系列未合并主线(截至 2026-10-18),源码固定到 rcu-free-v3 分支头与 v7.3-rc7 基线,数字均来自 Linus 与 Kiryl 的提交说明和邮件。