1. mm 未合并

    NSD 学习型 page cache 预取器

    在 filemap_read 单点 hook 学习 4KB 区域访问模式,按检测到的步长调用 page_cache_sync_readahead 预取,顺序 64K buffered 吞吐 +22.6%,SQLite FTS 查询时间 -18.8%。

  2. mm 未合并

    跨进程内存访问改用 per-VMA 锁提升监控可靠性

    将跨进程内存读 __access_remote_vm 改用 per-VMA 锁,并对 PTE 映射的 large folio 批量 GUP;单 VMA 远程读延迟降低约 11% 至 19%,64kB mTHP 慢路径 pin 快 7.6 倍,监控读不再被 mmap 写锁卡住。

  3. mm v7.3-rc1

    修正 swappiness=max 误驱逐 page cache 并清理 per-node proactive reclaim

    把匿名页专属检查前移到无可回收匿名检查之前,无可回收匿名时提前退出保住 page cache 而非误驱逐

  4. mm 未合并

    vmpressure 评估窗口随机器规模缩放

    将固定的 vmpressure 评估窗口改为按机器内存 fls 对数缩放,由 initcall 一次算定;同等回收工作量下评估次数降幅随机器变大而扩大,4GB 约 6 倍、64GB 约 10 倍,减少 per-memcg sr_lock 与 socket_pressure seqlock 开销。

  5. mm v7.3-rc1

    修复 node reclaim 忽略 swappiness 参数

    sc_swappiness() 的 !CONFIG_MEMCG 版本直接返回 vm_swappiness,node reclaim 接口的 swappiness 参数被静默忽略;合并成单一定义先查 proactive_swappiness

  6. mm v7.3-rc1

    swap_ops 更新

    同步 swap 设备恢复逐 folio 直写让 LRU 扫描及时看到 writeback 位清除,文件系统自供 swap_ops 让 swap 读写直达

  7. mm 未合并

    为 zswap 绕过 swap readahead

    把 swap readahead 窗口遍历拆两遍重排,先发起异步磁盘读,设备 I/O 在途时再读同步邻居(zswap/zram),用磁盘 I/O 隐藏同步解压;目标本身同步则跳过第二遍。混合 swap-in 吞吐 +10%,纯 zswap kbuild 构建 -13.7%。

  1. mm v7.3-rc1

    修复 defrag_mode 中的 reclaim storm

    让 non-movable 请求在 allocator slowpath 参与 pageblock 生产,以 pageblock_order 主动发起 direct reclaim 与 direct compaction,消除 defrag_mode 下无产出的 reclaim storm,OOM kill 率回到基线。

  2. mm 未合并

    为 MLOCK_ONFAULT 跳过 __mm_populate

    MLOCK_ONFAULT 只在未来 fault 时锁页,但 do_mlock/mlockall 仍无条件调 __mm_populate,而其对 VM_LOCKONFAULT VMA 立即返回,只在遍历 VMA 持 mmap_read_lock 却不做有用工作;设置 MLOCK_ONFAULT 时直接跳过,省去这次无用遍历。

  3. mm v7.3-rc1

    阻止迁移回退到非目标节点

    DAMOS_MIGRATE_HOT/COLD 的目标节点只被分配器当偏好,节点紧张时静默回退且统计仍报成功;加 __GFP_THISNODE 让失败如实上报

  4. mm 未合并

    vmscan 对 dirty folio 批量刷 TLB 降低多核 IPI 开销

    vmscan 把 dirty folio 攒成 folio_batch 整批刷 TLB,多核 IPI 大减,stress-ng bogo ops/s 提升 26.9%

  5. mm v7.3-rc1

    uffd-wp 文件 folio 的批量 unmap

    批量 unmap 此前排除 uffd-wp VMA 的文件 folio;给 uffd-wp 标记安装加批量支持后,zap 与 rmap 两条路径都能批量处理

  6. mm v7.3-rc1

    MGLRU 首次使用后提升映射的 executable folio

    MGLRU 在映射 executable folio 首次使用后即提升,避免 exec 代码被过早回收,内核构建 sys time 提速约 15%

  7. mm v7.3-rc1

    kmemleak 扫描期间上报 RCU-tasks 静止状态

    kmemleak 扫描靠 cond_resched() 防 soft lockup 但不报 RCU-tasks 静止状态,kmemleak 线程成 holdout 拖住 grace period,BPF map 释放被卡 122 秒触发 hung task;7 个让出点全部换 cond_resched_tasks_rcu_qs()