Re: All pages belonging to a process
From: Jiri Kosina
Date: Tue Aug 25 2009 - 08:44:37 EST
On Tue, 25 Aug 2009, Anupama Chandwani wrote:
> /* For all vma-s of a process */
> for (vma = task->mm->mmap; vma!=NULL; vma = vma->next)
you mean vma->vm_next?
> {
> pgd = pgd_offset(mm, address);
> if (!pgd_present(*pgd))
> continue;
>
> pud = pud_offset(pgd, address);
> if (!pud_present(*pud))
> continue;
>
> pmd = pmd_offset(pud, address);
> if (!pmd_present(*pmd))
> continue;
>
> pte = pte_offset_map_lock (task->mm->vm_mm, pmd, address, &ptl);
>
> print pte_pfn(*pte) and other debug info;
>
> pte_unmap_unlock(pte, ptl);
> }
> }
>
> The code hangs. I do not get anything in dmesg.
Do you have mmap_sem locked?
--
Jiri Kosina
SUSE Labs