On Mon, 12 Dec 2011 10:31:57 -0500 KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxx> wrote: > (12/12/11 4:27 AM), KAMEZAWA Hiroyuki wrote: > > On Mon, 12 Dec 2011 09:49:30 +0900 > > KAMEZAWA Hiroyuki<kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote: > > > >> On Fri, 9 Dec 2011 17:48:40 -0500 > >> kosaki.motohiro@xxxxxxxxx wrote: > >> > >>> From: KOSAKI Motohiro<kosaki.motohiro@xxxxxxxxxxxxxx> > >>> > >>> commit 297c5eee37 (mm: make the vma list be doubly linked) added > >>> vm_prev member into vm_area_struct. Therefore we can simplify > >>> find_vma_prev() by using it. Also, this change help to improve > >>> page fault performance because it has strong locality of reference. > >>> > >>> Signed-off-by: KOSAKI Motohiro<kosaki.motohiro@xxxxxxxxxxxxxx> > >> > >> Reviewed-by: KAMEZAWA Hiroyuki<kamezawa.hiroyu@xxxxxxxxxxxxxx> > >> > > > > Hmm, your work remind me of a patch I tried in past. > > Here is a refleshed one...how do you think ? > > > > == > > From c0261936fc01322d06425731d33f38b2021e8067 Mon Sep 17 00:00:00 2001 > > From: KAMEZAWA Hiroyuki<kamezawa.hiroyu@xxxxxxxxxxxxxx> > > Date: Mon, 12 Dec 2011 18:31:19 +0900 > > Subject: [PATCH] per thread vma cache. > > > > This is a toy patch. How do you think ? > > > > This is a patch for per-thread mmap_cache without heavy atomic ops. > > > > I'm sure overhead of find_vma() is pretty small in usual application > > and this will not show good improvement. But I think, if we need > > to have cache of vma, it should be per thread rather than per mm. > > Agreed. per-thread is better. > > > > This patch adds thread->mmap_cache, a pointer for vm_area_struct > > and update it appropriately. Because we have no refcnt on vm_area_struct, > > thread->mmap_cache may be a stale pointer. This patch detects stale > > pointer by checking > > > > - thread->mmap_cache is one of SLABs in vm_area_cachep. > > - thread->mmap_cache->vm_mm == mm. > > > > vma->vm_mm will be cleared before kmem_cache_free() by this patch. > > Do you mean the cache can make mishit with unrelated vma when freed vma > was reused? yes. > If so, it is most tricky part of this patch, I strongly hope you write > a comment more. > Sure. -Kame -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>