]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
mm: hugetlb: bail out unmapping after serving reference page
authorHillf Danton <dhillf@gmail.com>
Wed, 21 Mar 2012 23:34:03 +0000 (16:34 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 22 Mar 2012 00:54:57 +0000 (17:54 -0700)
When unmapping a given VM range, we could bail out if a reference page is
supplied and is unmapped, which is a minor optimization.

Signed-off-by: Hillf Danton <dhillf@gmail.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/hugetlb.c

index afe3e1ff919b150c33344a2acfa9f80d8d54b765..62f9fada4d6de9f912cad9bfacf6cf84098914f0 100644 (file)
@@ -2280,6 +2280,10 @@ void __unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start,
                if (pte_dirty(pte))
                        set_page_dirty(page);
                list_add(&page->lru, &page_list);
+
+               /* Bail out after unmapping reference page if supplied */
+               if (ref_page)
+                       break;
        }
        flush_tlb_range(vma, start, end);
        spin_unlock(&mm->page_table_lock);