The patch titled Subject: mm-migrate-optimize-migrate_vma_setup-for-holes-v2 has been added to the -mm tree. Its filename is mm-migrate-optimize-migrate_vma_setup-for-holes-v2.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-migrate-optimize-migrate_vma_setup-for-holes-v2.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-migrate-optimize-migrate_vma_setup-for-holes-v2.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Ralph Campbell <rcampbell@xxxxxxxxxx> Subject: mm-migrate-optimize-migrate_vma_setup-for-holes-v2 Do the same check for vma_is_anonymous() for pte_none(). Don't increment cpages if the page isn't migrating. Link: http://lkml.kernel.org/r/20200710194840.7602-2-rcampbell@xxxxxxxxxx Signed-off-by: Ralph Campbell <rcampbell@xxxxxxxxxx> Cc: Jerome Glisse <jglisse@xxxxxxxxxx> Cc: John Hubbard <jhubbard@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Jason Gunthorpe <jgg@xxxxxxxxxxxx> Cc: "Bharata B Rao" <bharata@xxxxxxxxxxxxx> Cc: Shuah Khan <shuah@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/migrate.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) --- a/mm/migrate.c~mm-migrate-optimize-migrate_vma_setup-for-holes-v2 +++ a/mm/migrate.c @@ -2167,13 +2167,19 @@ static int migrate_vma_collect_hole(unsi { struct migrate_vma *migrate = walk->private; unsigned long addr; - unsigned long flags; /* Only allow populating anonymous memory. */ - flags = vma_is_anonymous(walk->vma) ? MIGRATE_PFN_MIGRATE : 0; + if (!vma_is_anonymous(walk->vma)) { + for (addr = start; addr < end; addr += PAGE_SIZE) { + migrate->src[migrate->npages] = 0; + migrate->dst[migrate->npages] = 0; + migrate->npages++; + } + return 0; + } for (addr = start; addr < end; addr += PAGE_SIZE) { - migrate->src[migrate->npages] = flags; + migrate->src[migrate->npages] = MIGRATE_PFN_MIGRATE; migrate->dst[migrate->npages] = 0; migrate->npages++; migrate->cpages++; @@ -2264,8 +2270,10 @@ again: pte = *ptep; if (pte_none(pte)) { - mpfn = MIGRATE_PFN_MIGRATE; - migrate->cpages++; + if (vma_is_anonymous(vma)) { + mpfn = MIGRATE_PFN_MIGRATE; + migrate->cpages++; + } goto next; } _ Patches currently in -mm which might be from rcampbell@xxxxxxxxxx are mm-remove-redundant-check-non_swap_entry.patch mm-migrate-optimize-migrate_vma_setup-for-holes.patch mm-migrate-optimize-migrate_vma_setup-for-holes-v2.patch mm-migrate-add-migrate-shared-test-for-migrate_vma_.patch