lkml.org 
[lkml]   [2013]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCHv2, RFC 08/30] thp, mm: rewrite add_to_page_cache_locked() to support huge pages
    Date
    Hillf Danton wrote:
    > On Fri, Mar 15, 2013 at 9:50 PM, Kirill A. Shutemov
    > <kirill.shutemov@linux.intel.com> wrote:
    > > Hillf Danton wrote:
    > >> On Fri, Mar 15, 2013 at 9:23 PM, Kirill A. Shutemov
    > >> <kirill.shutemov@linux.intel.com> wrote:
    > >> > Hillf Danton wrote:
    > >> >> On Fri, Mar 15, 2013 at 1:50 AM, Kirill A. Shutemov
    > >> >> <kirill.shutemov@linux.intel.com> wrote:
    > >> >> > + page_cache_get(page);
    > >> >> > + spin_lock_irq(&mapping->tree_lock);
    > >> >> > + page->mapping = mapping;
    > >> >> > + page->index = offset;
    > >> >> > + error = radix_tree_insert(&mapping->page_tree, offset, page);
    > >> >> > + if (unlikely(error))
    > >> >> > + goto err;
    > >> >> > + if (PageTransHuge(page)) {
    > >> >> > + int i;
    > >> >> > + for (i = 1; i < HPAGE_CACHE_NR; i++) {
    > >> >> struct page *tail = page + i; to easy reader
    > >> >>
    > >> >> > + page_cache_get(page + i);
    > >> >> s/page_cache_get/get_page_foll/ ?
    > >> >
    > >> > Why?
    > >> >
    > >> see follow_trans_huge_pmd() please.
    > >
    > > Sorry, I fail to see how follow_trans_huge_pmd() is relevant here.
    > > Could you elaborate?
    > >
    > Lets see the code
    >
    > page += (addr & ~HPAGE_PMD_MASK) >> PAGE_SHIFT;
    > //page is tail now
    > VM_BUG_ON(!PageCompound(page));
    > if (flags & FOLL_GET)
    > get_page_foll(page);
    > //raise page count with the foll function
    >
    > thus I raised question.

    get_page_foll() is designed to be part of follow_page*() call chain.
    get_page() can handle compound pages properly.

    --
    Kirill A. Shutemov


    \
     
     \ /
      Last update: 2013-03-15 16:21    [W:3.210 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site