On 10/19/2015 06:52 AM, Hugh Dickins wrote: > Commit e6c509f85455 ("mm: use clear_page_mlock() in page_remove_rmap()") > in v3.7 inadvertently made mlock_migrate_page() impotent: page migration > unmaps the page from userspace before migrating, and that commit clears > PageMlocked on the final unmap, leaving mlock_migrate_page() with nothing > to do. Not a serious bug, the next attempt at reclaiming the page would > fix it up; but a betrayal of page migration's intent - the new page ought > to emerge as PageMlocked. > > I don't see how to fix it for mlock_migrate_page() itself; but easily > fixed in remove_migration_pte(), by calling mlock_vma_page() when the > vma is VM_LOCKED - under pte lock as in try_to_unmap_one(). > > Delete mlock_migrate_page()? Not quite, it does still serve a purpose > for migrate_misplaced_transhuge_page(): where we could replace it by a > test, clear_page_mlock(), mlock_vma_page() sequence; but would that be > an improvement? mlock_migrate_page() is fairly lean, and let's make > it leaner by skipping the irq save/restore now clearly not needed. > > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> -- 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>