On Fri, Apr 05, 2013 at 04:33:32PM -0400, KOSAKI Motohiro wrote: > > diff --git v3.9-rc3.orig/mm/hugetlb.c v3.9-rc3/mm/hugetlb.c > > index 0a0be33..98a478e 100644 > > --- v3.9-rc3.orig/mm/hugetlb.c > > +++ v3.9-rc3/mm/hugetlb.c > > @@ -2819,7 +2819,7 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, > > if (ptep) { > > entry = huge_ptep_get(ptep); > > if (unlikely(is_hugetlb_entry_migration(entry))) { > > - migration_entry_wait(mm, (pmd_t *)ptep, address); > > + migration_entry_wait_huge(mm, (pmd_t *)ptep, address); > > Hm. > > How do you test this? From x86 point of view, this patch seems unnecessary because > hugetlb_fault call "address &= hugetlb_mask()" at first and then migration_entry_wait() > could grab right pte lock. And from !x86 point of view, this funciton still doesn't work > because huge page != pmd on some arch. I kicked hugepage migration for address range where I repeat to access in a loop, and checked what happened (whether soft lockup happens or not.) But I don't fully understand what the problem is, and I might wrongly define the problem. So give me time to clarify it. And I fully agree that this function should be arch dependent. > I might be missing though. -- 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>