lkml.org 
[lkml]   [2012]   [Jan]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/6] pagemap: avoid splitting thp when reading /proc/pid/pagemap
    On Thu, Jan 12, 2012 at 02:34:53PM -0500, Naoya Horiguchi wrote:
    > + if (pmd_trans_splitting(*pmd)) {
    > + spin_unlock(&walk->mm->page_table_lock);
    > + wait_split_huge_page(vma->anon_vma, pmd);
    > + } else {
    > + for (; addr != end; addr += PAGE_SIZE) {
    > + unsigned long offset = (addr & ~PAGEMAP_WALK_MASK)
    > + >> PAGE_SHIFT;
    > + pfn = thp_pte_to_pagemap_entry(*(pte_t *)pmd,
    > + offset);

    What is this that then morphs into a pme (which still has a cast
    inside its creation)? thp_pte_to_pagemap_entry don't seem to be passed
    ptes too. The only case where it is valid to do a cast like that is
    when a function is used by both ptes sand pmds and the code tends to
    work for both with minimal modification to differentiate the two
    cases. Considering the function that gets the cast is called thp_ this
    is hardly the case here.

    Why don't you pass the pmd and then do "if (pmd_present(pmd))
    page_to_pfn(pmd_page(pmd)) ? What's the argument for the cast. I'm
    just reviewing this series and maybe it was covered in previous
    versions.

    I don't get this pme thing for something as trivial as above that
    shouldn't require any cast at all.


    \
     
     \ /
      Last update: 2012-01-14 18:03    [W:0.020 / U:153.640 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site