Re: [patch 2/6] mm: micro-optimise rmap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Nick, your mail bounced while sending this privately so reply-all this
time]

> Index: linux-2.6/mm/rmap.c
> ===================================================================
> --- linux-2.6.orig/mm/rmap.c
> +++ linux-2.6/mm/rmap.c
> @@ -442,22 +442,23 @@ int page_referenced(struct page *page, i
>  void page_add_anon_rmap(struct page *page,
>  	struct vm_area_struct *vma, unsigned long address)
>  {
> -	struct anon_vma *anon_vma = vma->anon_vma;
> -	pgoff_t index;
> -
>  	BUG_ON(PageReserved(page));
> -	BUG_ON(!anon_vma);
>  
>  	inc_mm_counter(vma->vm_mm, anon_rss);
>  
> -	anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON;
> -	index = (address - vma->vm_start) >> PAGE_SHIFT;
> -	index += vma->vm_pgoff;
> -	index >>= PAGE_CACHE_SHIFT - PAGE_SHIFT;
> -
>  	if (atomic_inc_and_test(&page->_mapcount)) {
> -		page->index = index;
> +		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;
> +

linear_page_index() here too?


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux