The patch titled Allow migration of mlocked pages has been added to the -mm tree. Its filename is allow-migration-of-mlocked-pages.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: Allow migration of mlocked pages From: Christoph Lameter <clameter@xxxxxxx> Hugh clarified the role of VM_LOCKED. So we can now implement page migration for mlocked pages. Allow the migration of mlocked pages. This means that try_to_unmap must unmap mlocked pages in the migration case. Signed-off-by: Christoph Lameter <clameter@xxxxxxx> Acked-by: Hugh Dickins <hugh@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- mm/migrate.c | 10 ++++------ mm/rmap.c | 9 ++++----- 2 files changed, 8 insertions(+), 11 deletions(-) diff -puN mm/migrate.c~allow-migration-of-mlocked-pages mm/migrate.c --- 25/mm/migrate.c~allow-migration-of-mlocked-pages Wed May 24 14:14:59 2006 +++ 25-akpm/mm/migrate.c Wed May 24 14:14:59 2006 @@ -615,15 +615,13 @@ static int unmap_and_move(new_page_t get /* * Establish migration ptes or remove ptes */ - if (try_to_unmap(page, 1) != SWAP_FAIL) { - if (!page_mapped(page)) - rc = move_to_new_page(newpage, page); - } else - /* A vma has VM_LOCKED set -> permanent failure */ - rc = -EPERM; + try_to_unmap(page, 1); + if (!page_mapped(page)) + rc = move_to_new_page(newpage, page); if (rc) remove_migration_ptes(page, page); + unlock: unlock_page(page); diff -puN mm/rmap.c~allow-migration-of-mlocked-pages mm/rmap.c --- 25/mm/rmap.c~allow-migration-of-mlocked-pages Wed May 24 14:14:59 2006 +++ 25-akpm/mm/rmap.c Wed May 24 14:14:59 2006 @@ -562,9 +562,8 @@ static int try_to_unmap_one(struct page * If it's recently referenced (perhaps page_referenced * skipped over this mm) then we should reactivate it. */ - if ((vma->vm_flags & VM_LOCKED) || - (ptep_clear_flush_young(vma, address, pte) - && !migration)) { + if (!migration && ((vma->vm_flags & VM_LOCKED) || + (ptep_clear_flush_young(vma, address, pte)))) { ret = SWAP_FAIL; goto out_unmap; } @@ -771,7 +770,7 @@ static int try_to_unmap_file(struct page list_for_each_entry(vma, &mapping->i_mmap_nonlinear, shared.vm_set.list) { - if (vma->vm_flags & VM_LOCKED) + if ((vma->vm_flags & VM_LOCKED) && !migration) continue; cursor = (unsigned long) vma->vm_private_data; if (cursor > max_nl_cursor) @@ -805,7 +804,7 @@ static int try_to_unmap_file(struct page do { list_for_each_entry(vma, &mapping->i_mmap_nonlinear, shared.vm_set.list) { - if (vma->vm_flags & VM_LOCKED) + if ((vma->vm_flags & VM_LOCKED) && !migration) continue; cursor = (unsigned long) vma->vm_private_data; while ( cursor < max_nl_cursor && _ Patches currently in -mm which might be from clameter@xxxxxxx are origin.patch page-migration-make-do_swap_page-redo-the-fault.patch slab-extract-cache_free_alien-from-__cache_free.patch migration-remove-unnecessary-pageswapcache-checks.patch page-migration-cleanup-rename-ignrefs-to-migration.patch page-migration-cleanup-group-functions.patch page-migration-cleanup-remove-useless-definitions.patch page-migration-cleanup-drop-nr_refs-in-remove_references.patch page-migration-cleanup-extract-try_to_unmap-from-migration-functions.patch page-migration-cleanup-extract-try_to_unmap-from-migration-functions-update-comments-7.patch page-migration-cleanup-pass-mapping-to-migration-functions.patch page-migration-cleanup-move-fallback-handling-into-special-function.patch page-migration-cleanup-move-fallback-handling-into-special-function-update-comments-9.patch swapless-pm-add-r-w-migration-entries.patch swapless-pm-add-r-w-migration-entries-ifdefs.patch swapless-pm-add-r-w-migration-entries-update-comments.patch swapless-pm-add-r-w-migration-entries-update-comments-4.patch swapless-pm-add-r-w-migration-entries-update-comments-6.patch swapless-page-migration-rip-out-swap-based-logic.patch swapless-page-migration-modify-core-logic.patch swapless-page-migration-modify-core-logic-remove-useless-mapping-checks.patch more-page-migration-do-not-inc-dec-rss-counters.patch more-page-migration-use-migration-entries-for-file-pages.patch more-page-migration-use-migration-entries-for-file-pages-fix.patch more-page-migration-use-migration-entries-for-file-pages-update-comments-5.patch more-page-migration-use-migration-entries-for-file-pages-update-comments-8.patch more-page-migration-use-migration-entries-for-file-pages-remove_migration_ptes.patch more-page-migration-use-migration-entries-for-file-pages-replace-call-to-pageout-with-writepage-2.patch page-migration-update-documentation.patch mm-remove-vm_locked-before-remap_pfn_range-and-drop-vm_shm.patch page-migration-simplify-migrate_pages.patch page-migration-simplify-migrate_pages-tweaks.patch page-migration-handle-freeing-of-pages-in-migrate_pages.patch page-migration-use-allocator-function-for-migrate_pages.patch page-migration-support-moving-of-individual-pages.patch page-migration-detailed-status-for-moving-of-individual-pages.patch page-migration-support-moving-of-individual-pages-fixes.patch page-migration-support-moving-of-individual-pages-x86_64-support.patch page-migration-support-moving-of-individual-pages-x86-support.patch page-migration-support-a-vma-migration-function.patch allow-migration-of-mlocked-pages.patch cpuset-remove-extra-cpuset_zone_allowed-check-in-__alloc_pages.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html