v1
2026-07-14
大页迁移时批量rmap遍历 · v1
使 PTE 映射大 folio 的 rmap 遍历支持批量处理连续 PTE,提升迁移吞吐量。
原始补丁链接
子 Patch(6)
1/6
mm/rmap: Add batched version of folio_try_share_anon_rmap_pte
[mm/rmap: Add batched version of folio_try_share_anon_rmap_pte] From: Dev Jain dev.jain@arm.com To enable batched unmapping of anonymous folios, we need to handle the sharing of exclusive pages. He
2/6
mm: factor out generic PTE batch detection from swap_pte_batch()
[mm: factor out generic PTE batch detection from swap_pte_batch()] Factor out the generic PTE batch detection logic from swap_pte_batch() into softleaf_pte_batch() helper, so that it can be reused by
3/6
mm/migrate: split remove_migration_pte_hugetlb() out of remove_migration_pte()
[mm/migrate: split remove_migration_pte_hugetlb() out of remove_migration_pte()] remove_migration_pte() interleaves the regular folio path with the hugetlb path via folio_test_hugetlb() and CONFIG_HUG
4/6
mm/migrate: batch the restore-side migration rmap walk
[mm/migrate: batch the restore-side migration rmap walk] remove_migration_pte() restores migration entries one PTE at a time. For a PTE-mapped large folio, it repeats calls to building the PTE, add rm
5/6
mm/rmap: split try_to_migrate_hugetlb_one() out of try_to_migrate_one()
[mm/rmap: split try_to_migrate_hugetlb_one() out of try_to_migrate_one()] try_to_migrate_one() interleaves hugetlb special handling through the regular PTE/PMD migration path with folio_test_hugetlb()
6/6
mm/rmap: batch the unmap of large folios in try_to_migrate_one()
[mm/rmap: batch the unmap of large folios in try_to_migrate_one()] try_to_migrate_one() converts present PTEs to migration entries one at a time. For a PTE-mapped large folio, this repeat calls to pte