lkml.org 
[lkml]   [2008]   [Oct]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [Devel] Re: [PATCH 06/10] Introduce functions to dump mm
    Date
    On Monday 20 October 2008 21:21 Dave Hansen wrote:
    > On Sat, 2008-10-18 at 03:11 +0400, Andrey Mirkin wrote:
    > > +static void page_get_desc(struct vm_area_struct *vma, unsigned long
    > > addr, + struct page_desc *pdesc, cpt_context_t *
    > > ctx) +{
    > > + struct mm_struct *mm = vma->vm_mm;
    > > + pgd_t *pgd;
    > > + pud_t *pud;
    > > + pmd_t *pmd;
    > > + pte_t *ptep, pte;
    > > + spinlock_t *ptl;
    > > + struct page *pg = NULL;
    > > + pgoff_t linear_index = (addr - vma->vm_start)/PAGE_SIZE +
    > > vma->vm_pgoff; +
    > > + pdesc->index = linear_index;
    > > + pdesc->shared = 0;
    > > + pdesc->mm = CPT_NULL;
    > > +
    > > + if (vma->vm_flags & VM_IO) {
    > > + pdesc->type = PD_ABSENT;
    > > + return;
    > > + }
    > > +
    > > + pgd = pgd_offset(mm, addr);
    > > + if (pgd_none(*pgd) || unlikely(pgd_bad(*pgd)))
    > > + goto out_absent;
    > > + pud = pud_offset(pgd, addr);
    > > + if (pud_none(*pud) || unlikely(pud_bad(*pud)))
    > > + goto out_absent;
    > > + pmd = pmd_offset(pud, addr);
    > > + if (pmd_none(*pmd) || unlikely(pmd_bad(*pmd)))
    > > + goto out_absent;
    > > +#ifdef CONFIG_X86
    > > + if (pmd_huge(*pmd)) {
    > > + eprintk("page_huge\n");
    > > + goto out_unsupported;
    > > + }
    > > +#endif
    >
    > I take it you know that this breaks with the 1GB (x86_64) and 16GB (ppc)
    > large pages.
    >
    > Since you have the VMA, why not use is_vm_hugetlb_page()?
    Right now I'm checking VM_HUGETLB flag on VMAs in dump_one_vma().
    This checks were added for sanity purpose just to throw out all unsupported
    right now cases.

    Andrey


    \
     
     \ /
      Last update: 2008-10-23 10:49    [W:5.310 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site