On Wed, 8 Feb 2012, Naoya Horiguchi wrote: > Currently when we check if we can handle thp as it is or we need to > split it into regular sized pages, we hold page table lock prior to > check whether a given pmd is mapping thp or not. Because of this, > when it's not "huge pmd" we suffer from unnecessary lock/unlock overhead. > To remove it, this patch introduces a optimized check function and > replace several similar logics with it. > > Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> > Cc: David Rientjes <rientjes@xxxxxxxxxx> > > Changes since v4: > - Rethink returned value of __pmd_trans_huge_lock() [snip] > --- 3.3-rc2.orig/mm/mremap.c > +++ 3.3-rc2/mm/mremap.c > @@ -155,8 +155,6 @@ unsigned long move_page_tables(struct vm_area_struct *vma, > if (err > 0) { > need_flush = true; > continue; > - } else if (!err) { > - split_huge_page_pmd(vma->vm_mm, old_pmd); > } > VM_BUG_ON(pmd_trans_huge(*old_pmd)); > } Is that what you intended to do there? I just hit that VM_BUG_ON on rc3-next-20120217. Hugh -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>