Re: [RFC]vmscan: doing page_referenced() in batch way

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

 



On Thu, Oct 07, 2010 at 04:10:52AM +0800, Andrew Morton wrote:
> On Wed, 29 Sep 2010 10:57:33 +0800
> Shaohua Li <shaohua.li@xxxxxxxxx> wrote:
> 
> > when memory pressure is high, page_referenced() causes a lot of lock contention
> > for anon_vma->lock or mapping->i_mmap_lock. Considering pages from one file
> > usually live side by side in LRU list, we can lock several pages in
> > shrink_page_list() and do batch page_referenced() to avoid some lock/unlock,
> > which should reduce lock contention a lot. The locking rule documented in
> > rmap.c is:
> > page_lock
> > 	mapping->i_mmap_lock
> > 		anon_vma->lock
> > For a batch of pages, we do page lock for all of them first and check their
> > reference, and then release their i_mmap_lock or anon_vma lock. This seems not
> > break the rule to me.
> > Before I further polish the patch, I'd like to know if there is anything
> > preventing us to do such batch here.
Thanks for your time.

> The patch adds quite a bit of complexity, so we'd need to see benchmark
> testing results which justify it, please.
My test only shows around 10% improvements, which is below my expections.
try_to_unmap() causes quite a lot of lock contention for such locks, and makes
the page_referenced() batch not quite helpful. Looks we can do batch try_to_unmap()
too. I'll report back later when I have data with try_to_unmap() batched.

Thanks,
Shaohua

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]