1. mm 未合并

    为 free_pud_range() 补调度点

    进程退出释放稀疏 2.5 TiB 映射的页表页,连续 20ms 以上无调度点饿死 softirq,free_pud_range() 补 cond_resched() 后最大间隔降到 2ms 以下

  2. mm 未合并

    为 __unmap_hugepage_range() 补调度点

    稀疏 HugeTLB unmap 遍历空 huge PTE,连续 40ms 以上无调度点饿死 softirq,循环开头补 cond_resched(),最大间隔降到 2.5ms 以下

  3. iommu 未合并

    把 iova 区间索引从 rbtree 切换到 maple tree

    iova 区间索引从 rbtree 换为 maple tree,alloc_iova() 由线性搜索变为 O(log n),消除生产环境 soft lockup 隐患

  4. mm 未合并

    引入按 memory tier 的 memcg 记账与控制

    按 (memcg, tier) 建独立 page_counter,memory.tier 逐层读写 high/max,超限在该 tier 节点范围回收或 OOM

  5. mm v7.3-rc1

    stock slot 清空时释放 css 引用

    consume_stock() 把 slot 余额吃到 0 却不放 css 引用,drain 只认有余额的 slot,memcg 滞留 dying;余额归零即放引用、腾出 slot

  6. mm v7.3-rc1

    避免 vmstats 与 events 之间的 false sharing

    vmstats_percpu 与事件计数共 cacheline 引发 false sharing,移 cgwb_list 入对齐空隙隔开,mremap 吞吐恢复

  7. mm 未合并

    s390 批量化 lazy MMU 模式下的 PTE 更新

    lazy MMU 模式下 s390 PTE 更新攒进 per-CPU 缓存,退出时一次下发,避开逐次 IPTE 的 quiesce,mremap 加速 28 倍

  1. mm 未合并

    直接映射 large folio 的 pool 与 scratchpad bump allocator

    引入直接映射 large folio 的两个 bump allocator,netfilter 事务时延 -13.3%,lockdep 静态数组归零

  2. mm 未合并

    让 shmem unused huge shrinker 感知 memcg

    shmem unused huge shrinker 列表转为 memcg 感知 list_lru,memcg 回收只走本 memcg 候选,消除误伤与无效扫描

  3. mm 未合并

    obj_cgroup_may_zswap() 改用限速的 stats flush

    obj_cgroup_may_zswap() 改用限速 flush,swap storm 下 flush 281,017 降至 80,445

  4. mm 未合并

    为 DAMON 新增 ARM SPE AUX 后端

    DAMON 硬件采样框架新增 AUX 后端通道,ARM SPE 包流在 kdamond 进程上下文解码成访问报告,送进现有 SPSC 报告环

  5. mm 未合并

    在迁移原语上重建折叠引擎

    用迁移机制的两道屏障重建 khugepaged 匿名折叠:源页原地冻住取代地址空间锁,支持子 PMD 窗口,被折叠的工作负载读写 p99 降约七成

  6. mm 未合并

    批量处理 large folio 迁移的 rmap walk

    按连续 PTE 批次把 large folio 迁移的解除映射与恢复 2 趟 rmap walk 合并处理,1M folio 迁移吞吐提升约 44%

  7. mm v7.3-rc1

    修复 large folio young 计数少计

    look-around 触发 folio 的 young 贡献固定按 1 计,large folio 少计 nr-1 使热 PMD 进不了 bloom filter 面临误回收;初值改按批量大小 nr