This patchset rewrites freeze_page() and unfreeze_page() using try_to_unmap() and remove_migration_ptes(). Result is much simpler, but somewhat slower. Comparing to v1, I've recovered most of performance for PMD-mapped THPs with few shortcuts. Migration 8GiB worth of PMD-mapped THP: Baseline 20.21 ± 0.393 Patched 20.73 ± 0.082 Slowdown 1.03x It's 3% slower, comparing to 14% in v1. I don't it should be a stopper. Splitting of PTE-mapped pages slowed more. But this is not that often case. Migration 8GiB worth of PMD-mapped THP: Baseline 20.39 ± 0.225 Patched 22.43 ± 0.496 Slowdown 1.10x Please, consider applying. Kirill A. Shutemov (4): rmap: introduce rmap_walk_locked() rmap: extend try_to_unmap() to be usable by split_huge_page() mm: make remove_migration_ptes() beyond mm/migration.c thp: rewrite freeze_page()/unfreeze_page() with generic rmap walkers include/linux/huge_mm.h | 13 ++- include/linux/rmap.h | 6 ++ mm/huge_memory.c | 204 +++++++----------------------------------------- mm/migrate.c | 15 ++-- mm/rmap.c | 70 +++++++++++++---- 5 files changed, 106 insertions(+), 202 deletions(-) -- 2.7.0 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>