Re: [patch v2] mm, thp: print useful information when mmap_sem isunlocked in zap_pmd_range

From: Dave Jones
Date: Sun Jun 24 2012 - 15:52:39 EST


On Fri, Jun 22, 2012 at 02:06:40PM -0700, David Rientjes wrote:
> On Mon, 11 Jun 2012, David Rientjes wrote:
>
> > diff --git a/mm/memory.c b/mm/memory.c
> > --- a/mm/memory.c
> > +++ b/mm/memory.c
> > @@ -1225,7 +1225,15 @@ static inline unsigned long zap_pmd_range(struct mmu_gather *tlb,
> > next = pmd_addr_end(addr, end);
> > if (pmd_trans_huge(*pmd)) {
> > if (next - addr != HPAGE_PMD_SIZE) {
> > - VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem));
> > +#ifdef CONFIG_DEBUG_VM
> > + if (!rwsem_is_locked(&tlb->mm->mmap_sem)) {
> > + pr_err("%s: mmap_sem is unlocked! addr=0x%lx end=0x%lx vma->vm_start=0x%lx vma->vm_end=0x%lx\n",
> > + __func__, addr, end,
> > + vma->vm_start,
> > + vma->vm_end);
> > + BUG();
> > + }
> > +#endif
> > split_huge_page_pmd(vma->vm_mm, pmd);
> > } else if (zap_huge_pmd(tlb, vma, pmd, addr))
> > goto next;
>
> This patch is now in Linus' tree so if you are able to hit this issue and
> capture it again, we should be able to get much more useful information.

I've had it applied in my local builds for a while, but haven't managed
to hit it again recently. Though I've not been doing as many overnight runs
this last week or two because temperatures at home have been icky enough
without computers belching out hot air (no ac)

Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/