Re: [PATCH] mm/pagewalk.c: walk_page_range should avoid VM_PFNMAPareas

From: David Rientjes
Date: Wed May 01 2013 - 14:45:12 EST


On Wed, 1 May 2013, Cliff Wickman wrote:

> > > @@ -200,28 +184,46 @@ int walk_page_range(unsigned long addr,
> > >
> > > pgd = pgd_offset(walk->mm, addr);
> > > do {
> > > - struct vm_area_struct *vma;
> > > + struct vm_area_struct *vma = NULL;
> > >
> > > next = pgd_addr_end(addr, end);
> > >
> > > /*
> > > - * handle hugetlb vma individually because pagetable walk for
> > > - * the hugetlb page is dependent on the architecture and
> > > - * we can't handled it in the same manner as non-huge pages.
> > > + * Check any special vma's within this range.
> > > */
> > > - vma = hugetlb_vma(addr, walk);
> > > + VM_BUG_ON(!rwsem_is_locked(&walk->mm->mmap_sem));
> >
> > I think this should be moved out of the iteration. It's currently inside
> > it even before your patch, but I think it's pointless.
>
> I don't follow. We are iterating through a range of addresses. When
> we come to a range that is VM_PFNMAP we skip it. How can we take that
> out of the iteration?
>

I'm referring only to the VM_BUG_ON().
--
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/