lkml.org 
[lkml]   [2005]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [patch][rfc] 2/5: micro optimisation for mm/rmap.c
    William Lee Irwin III wrote:
    > On Thu, Jun 23, 2005 at 05:06:35PM +1000, Nick Piggin wrote:
    >
    >>+ index = (address - vma->vm_start) >> PAGE_SHIFT;
    >>+ index += vma->vm_pgoff;
    >>+ index >>= PAGE_CACHE_SHIFT - PAGE_SHIFT;
    >>+ page->index = index;
    >
    >
    > linear_page_index()
    >

    Ah indeed it is, thanks. I'll queue this up as patch 2.5, then?

    Use linear_page_index in mm/rmap.c, as noted by Bill Irwin.

    Index: linux-2.6/mm/rmap.c
    ===================================================================
    --- linux-2.6.orig/mm/rmap.c
    +++ linux-2.6/mm/rmap.c
    @@ -448,16 +448,11 @@ void page_add_anon_rmap(struct page *pag

    if (atomic_inc_and_test(&page->_mapcount)) {
    struct anon_vma *anon_vma = vma->anon_vma;
    - pgoff_t index;
    -
    BUG_ON(!anon_vma);
    anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON;
    page->mapping = (struct address_space *) anon_vma;

    - index = (address - vma->vm_start) >> PAGE_SHIFT;
    - index += vma->vm_pgoff;
    - index >>= PAGE_CACHE_SHIFT - PAGE_SHIFT;
    - page->index = index;
    + page->index = linear_page_index(vma, address);

    inc_page_state(nr_mapped);
    }
    \
     
     \ /
      Last update: 2005-06-23 10:53    [W:3.419 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site