-
移除 READ_ONLY_THP_FOR_FS 并为可写文件启用 file THP
移除只读配置让 file THP 的 3 条创建路径对可写文件全打通,扩大文件大页覆盖面并降低 TLB 未命中
-
swap table 第四阶段统一分配与降低静态元数据
把分散 swap 元数据收敛进统一 swap 表、分配计费合并为单一路径,1TB swap 静态元数据省约 512MB
-
用 RWF_DONTCACHE 提升写性能
把 DONTCACHE 写的回写从写者内联转交后台 flusher 并用 per-bdi 脏页计数器限定范围,让顺序写吞吐提升约 3 倍
-
EOF 处不再设置 PG_readahead
让预读抵达 EOF 即不再设标记,消除空转的异步预读并让末页纳入 mmap 批量映射
-
用 per-ctx 无锁 PRNG 取代 damon_rand
把 DAMON 采样热路径的加密级带锁随机数换成每上下文单个无锁 PRNG,区域数 2 万时 kdamond 单核占用从约 72% 降到 50%
-
把 freelist 构建推迟到新 slab 批量分配之后
SLUB 把新 slab freelist 构建推迟到对象发完之后只为剩余对象构建,省去分配期建好即弃的浪费,分配时间降约 42%~70%
-
改进 MGLRU 回收循环与脏 folio 处理
在 MGLRU 回收循环起始一次算清扫描预算并解耦老化、把脏页冲刷移入循环,让 MongoDB 吞吐提升约 36%
-
收紧 mmap_miss 命中计数
收紧未命中计数只计真正命中、不计缺页重试,让随机访问不再被误判为顺序,无用预读从数百 GiB 降到约 1 GiB
-
lru_add 排空时预先释放 dead folio
在 lru_add 排空前拣出死 folio 直接释放而不进 LRU,每机每分钟省约 260 万次 lruvec 锁获取
-
用批量清零替代 kernel_init_pages
把 init_on_alloc 的逐页临时映射清零改为整段批量清零,16GB HugeTLB 分配快约 2.7 倍
-
修复 vmstat_shepherd 双重调度 vmstat_update
让 vmstat 守护改看刷新的正执行状态而非待决位,消除双重调度与反复取 zone 锁,zone 锁竞争降约 55%
-
costly order 回收时跳过 socket pressure
让 vmpressure 仅低阶回收才断言 socket 压力,使高阶回收不再误节流 TCP,接收窗口卡死连接从约 19% 归零
-
mprotect 的微优化
为 mprotect 改保护位热循环里的 order-0 单页单开 fast path 内联批量 PTE 逻辑,加速约 18%
-
高效释放连续 order-0 页
按最大对齐块批量归还 vmalloc 连续页而非逐页释放,恢复高阶回收,紧密分配释放循环 micro-benchmark 提速约 5.6 倍