1. mm 未合并

    跳过 bdev inode 的 foreign dirty tracking

    bdev inode 被所有 buffered 用户共享却只有一个 wb 属主,属主错配是常态,foreign flush 顺带写出普通文件数据破坏覆写合并;对 bdev inode 跳过 foreign dirty tracking,覆写文件设备写入量 -69.6%,前台带宽 +16.8%

  2. mm v7.4-rc1

    swapcache 稀少时 GFP_NOIO 回收跳过 anon 扫描

    GFP_NOIO 回收能收回的 anon folio 只有 swapcache 里的,新增 swapcache 水位判定,传统 LRU 下水位过低时整轮跳过 anon 扫描,消除观测到的超过 150 ms 空转

  3. mm v7.4-rc1

    清理并解耦匿名与文件 folio 的拆分路径

    把匿名、page cache、swap cache 混在一起的拆分函数按类型分家成两个助手,swap cache 全归匿名侧;修复两处错误路径,未映射匿名大页免 anon_vma 锁即可拆分,__folio_split 单次调用耗时从 68.52µs 降至 67.38µs

  4. f2fs 未合并

    为 f2fs 启用 buffered RWF_DONTCACHE

    为 f2fs 打开 buffered RWF_DONTCACHE 入口,dropbehind 写 bio 改在任务上下文完成以即时失效 folio,normal 与 dropbehind folio 允许共享写 bio。手机真机 64 GiB 流式写:kswapd0 CPU 从约 20% 归零,Cached 从约 4.8 GiB 降到约 0.6 GiB,写吞吐下降 23% 到 68%;限压 memcg 下 1 MiB 写吞吐反升 286.90%

  5. mm v7.3-rc4

    让 huge PFN 映射绕过 THP tuneables

    让 huge PFN 映射(VM_PFNMAP 且注册 huge_fault)绕过 THP tuneables 门控,缺页时直接建立大页映射,smaps THPeligible 上报保持准确;128 GiB GPU BAR 映射耗时 20.7 秒降至 0.4 秒,4 GPU 虚拟机启动 97 秒降至 17 秒

  6. mm v7.4-rc1

    修复非 kswapd 回收下的内存保护失效

    非 kswapd 全局回收无人计算 memcg 保护值,memory.min/low 拿陈旧值做判断而失效;沿祖先链 O(depth) 补算保护值,使保护在该路径恢复生效

  7. mm v7.4-rc1

    zswap 用 pool id 为 zswap_entry 瘦身

    zswap_entry 的 pool 指针改用 u8 pool id,pool 表换成按需分配 id 的 xarray,entry 从 56 缩至 48 字节,每 1GiB 省约 2MiB 元数据

  1. mm v7.4-rc1

    按访问模式分组 memcg 结构体字段

    memcg 字段挪动反复引入 false sharing 回归,把 struct mem_cgroup 与 struct mem_cgroup_per_node 的字段按访问模式分进命名 cacheline 组,memcg_struct_check() 在编译期校验布局契约,实测提升 0.8% 至 1.3%,无回退。

  2. mm 未合并

    为 vmap drain 启用专用 unbound workqueue

    vmap drain 此前经 system_wq 以 bound worker 运行,高 CPU 数机器上超 10ms 触发告警;迁到专用 WQ_UNBOUND 加 WQ_MEM_RECLAIM 队列并拆分父子队列,顺带简化 helper 调度

  3. mm 未合并

    为 memcg memory.reclaim 增加显式回收目标

    memory.reclaim 新增 goal=progress、goal=evict、goal=demote 三个显式目标,tiering 系统上 evict 让 demotion 不再计入完成量,demote 只做分层放置不驱逐,用户态控制器重获确定的回收语义

  4. mm v7.4-rc1

    修复 MGLRU 下的 shadow node 预算

    count_shadow_nodes() 经 lruvec_lru_size() 统计可驱逐页,而 MGLRU 不维护其依赖的 lru_zone_size 数组,shadow node 预算只剩零头致 workingset 保护失效;统计源换回 lruvec_page_state_local() 并把 dying memcg 统计重定向扩到所有层级后恢复

  5. mm 未合并

    MADV_WILLNEED 预取私有文件映射的 COW swap 页

    MADV_WILLNEED 对发生过 COW 的私有文件映射补走 PTE 遍历预取 swap 页,后续访问同步换入从 16718 页降为 0,访问耗时从 752 ms 降到 55 ms

  6. mm v7.3-rc4

    修复 pmd_modify() 丢弃 dirty bit

    pmd_modify() 剔除 _PAGE_DIRTY,可写脏 PMD 修改权限后脏状态凭空消失;补回 _PAGE_DIRTY 后,MADV_FREE 与 NUMA hinting 链路下的数据静默丢失随之消除

  7. mm 未合并

    降低 FS-DAX pmem 的 struct page 开销

    FS-DAX pmem 注册时 vmemmap 全部指向共享只读页,DAX fault 插入用户态映射前才物化私有副本,从未 fault 的 PFN 既不占 vmemmap 内存也跳过 struct page 初始化