v16
2026-10-21
设备页缺页时迁移 · v16
为HMM页表遍历支持设备页迁移,增加PFN转换、PTE/PMD收集、惰性MMU及回滚机制。
原始补丁链接
子 Patch(12)
1/12
mm/Kconfig: changes for migrate on fault for device pages
在 mm/Kconfig 为 migrate_device 的统一 HMM 页表遍历补上 HMM 与 MMU_NOTIFIER 依赖,避免随机配置缺少 HMM 支持而破坏迁移功能。
2/12
mm: add helper to convert HMM pfn to migrate pfn
新增 HMM pfn 转 migrate pfn 的辅助接口,把 HMM 页表遍历收集的页转入 migrate_vma 结构,为统一收集阶段衔接。
3/12
mm/hmm: preparations for HMM to participate in migration
On 10/21/26 5:04 PM, mpenttil@redhat.com wrote: > From: Mika Penttilä mpenttil@redhat.com > > For migration to happen after hmm_range_fault(), the vma has to > retrieved. Luckily, pagewalk already
4/12
mm/hmm: do the plumbing for HMM to participate in migration
在 hmm_range_fault() 加入迁移分支:迁移时锁住 pmd/pte,遍历中调用 hmm_vma_handle_migrate_prepare*(),处理缺页前再解锁。
5/12
mm/hmm: migrate collection in HMM pagewalk - pte level
[Re: [PATCH v16 05/12] mm/hmm: migrate collection in HMM pagewalk - pte level] On 10/21/26 5:04 PM, mpenttil@redhat.com wrote: > From: Mika Penttilä mpenttil@redhat.com > > Implement the needed hmm
6/12
mm/hmm: migrate collection in HMM pagewalk - pmd level
实现 PMD 级 hmm_vma_handle_migrate_prepare_pmd(),按 HMM_PFN_MIGRATE 判定、拆分 folio 并插入 migration PMD,规避旧拆分路径的引用计数与解锁错误。
7/12
mm/hmm: add lazy MMU mode support for migration in HMM pagewalk
在 HMM 迁移收集期间调用 lazy_mmu_mode_enable()/disable(),延迟批量 TLB/MMU 刷新,降低大量 PTE 修改的同步开销。
8/12
mm/hmm: implement rollback for device page migration in HMM pagewalk
增加迁移收集回滚:锁被丢弃后 PTE 表被清空或替换时,清除 HMM_PFN_VALID|HMM_PFN_MIGRATE 并解锁 folio;遇 migration PTE 则跳过以便重启遍历。
9/12
mm: enable device page migration from HMM pagewalk
[Re: [PATCH v16 09/12] mm: enable device page migration from HMM pagewalk] On 10/21/26 5:05 PM, mpenttil@redhat.com wrote: > From: Mika Penttilä mpenttil@redhat.com > > HMM pagewalk has now the mac
10/12
lib/test_hmm: add a new testcase for the migrate on fault
扩展 lib/test_hmm 与 hmm-tests,新增 migrate-on-fault 用例,覆盖 HMM 页表遍历中收集并迁移设备页的路径及用户 ABI。
11/12
Documentation/mm/hmm: document migration through hmm_range_fault()
在 hmm.rst 记录 migrate_vma_setup() 新增的 MIGRATE_VMA_FAULT/WRITE 标志,以及经 HMM_PFN_REQ_MIGRATE 和 migrate_hmm_range_setup() 驱动收集的用法。
12/12
drm/nouveau/svm: add support for migrate on fault
nouveau SVM 增加 svm_migrate_on_fault 开关(默认关),实现 nouveau_dmem_migrate_fault(),在一次 hmm_range_fault() 中完成缺页与迁移收集并迁往 VRAM。