Thread (10 messages) 10 messages, 2 authors, 2011-05-18

Re: [PATCH 1/4] VM/RMAP: Add infrastructure for batching the rmap chain locking v2

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2011-05-18 21:20:57

On Wed, 18 May 2011 23:14:43 +0200
Andi Kleen [off-list ref] wrote:
On Wed, May 18, 2011 at 01:25:47PM -0700, Andrew Morton wrote:
quoted
On Fri, 13 May 2011 16:46:21 -0700
Andi Kleen [off-list ref] wrote:
quoted
In fork and exit it's quite common to take same rmap chain locks
again and again when the whole address space is processed  for a
address space that has a lot of sharing. Also since the locking
has changed to always lock the root anon_vma this can be very
contended.

This patch adds a simple wrapper to batch these lock acquisitions
and only reaquire the lock when another is needed. The main
advantage is that when multiple processes are doing this in
parallel they will avoid a lot of communication overhead
on the lock cache line.

v2: Address review feedback. Drop lockbreak. Rename init function.
Doesn't compile:

include/linux/rmap.h: In function 'anon_vma_unlock_batch':
include/linux/rmap.h:146: error: 'struct anon_vma' has no member named 'lock'
mm/rmap.c: In function '__anon_vma_lock_batch':
mm/rmap.c:1737: error: 'struct anon_vma' has no member named 'lock'
mm/rmap.c:1739: error: 'struct anon_vma' has no member named 'lock'

I think I reported this against the v1 patches.
Hmm is that against -mm? Which tree exactly?

Both in Linus' latest and in -next I have

include/linux/rmap.h:

struct anon_vma {
        struct anon_vma *root;  /* Root of this anon_vma tree */
        spinlock_t lock;        /* Serialize access to vma list */

So it should compile. And it compiles here of course.
ah, whoop, sorry.  It's getting turned into a mutex, by
mm-convert-anon_vma-lock-to-a-mutex.patch
To be honest I forgot where the -mm tree is, so I can't check. 
It's not in its old place on kernel.org anymore?
http://userweb.kernel.org/~akpm/mmotm/

If you dive into the `series' file you'll see that this patch is part of this
series:

mm-mmu_gather-rework.patch
mm-mmu_gather-rework-fix.patch
powerpc-mmu_gather-rework.patch
sparc-mmu_gather-rework.patch
s390-mmu_gather-rework.patch
arm-mmu_gather-rework.patch
sh-mmu_gather-rework.patch
ia64-mmu_gather-rework.patch
um-mmu_gather-rework.patch
mm-now-that-all-old-mmu_gather-code-is-gone-remove-the-storage.patch
mm-powerpc-move-the-rcu-page-table-freeing-into-generic-code.patch
mm-extended-batches-for-generic-mmu_gather.patch
mm-extended-batches-for-generic-mmu_gather-fix.patch
lockdep-mutex-provide-mutex_lock_nest_lock.patch
mm-remove-i_mmap_lock-lockbreak.patch
mm-convert-i_mmap_lock-to-a-mutex.patch
mm-revert-page_lock_anon_vma-lock-annotation.patch
mm-improve-page_lock_anon_vma-comment.patch
mm-use-refcounts-for-page_lock_anon_vma.patch
mm-convert-anon_vma-lock-to-a-mutex.patch
mm-optimize-page_lock_anon_vma-fast-path.patch
mm-uninline-large-generic-tlbh-functions.patch

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  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@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help