]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mm: replace vma prio_tree with an interval tree
authorMichel Lespinasse <walken@google.com>
Fri, 28 Sep 2012 00:19:32 +0000 (10:19 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 8 Oct 2012 03:00:05 +0000 (14:00 +1100)
commit7f651b4c3bb0e2e4b5a5d8e41dd81da4e015a0dc
tree7f6d58727d7758adae0eb7e8099239d628ab9e7a
parent779e7619fec5f0069537710eaefa650f39ec6ff1
mm: replace vma prio_tree with an interval tree

Implement an interval tree as a replacement for the VMA prio_tree.  The
algorithms are similar to lib/interval_tree.c; however that code can't be
directly reused as the interval endpoints are not explicitly stored in the
VMA.  So instead, the common algorithm is moved into a template and the
details (node type, how to get interval endpoints from the node, etc) are
filled in using the C preprocessor.

Once the interval tree functions are available, using them as a
replacement to the VMA prio tree is a relatively simple, mechanical job.

Signed-off-by: Michel Lespinasse <walken@google.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Hillf Danton <dhillf@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
25 files changed:
arch/arm/mm/fault-armv.c
arch/arm/mm/flush.c
arch/parisc/kernel/cache.c
arch/x86/mm/hugetlbpage.c
fs/hugetlbfs/inode.c
fs/inode.c
include/linux/fs.h
include/linux/interval_tree_tmpl.h [new file with mode: 0644]
include/linux/mm.h
include/linux/mm_types.h
kernel/events/uprobes.c
kernel/fork.c
lib/interval_tree.c
lib/prio_tree.c
mm/Makefile
mm/filemap_xip.c
mm/fremap.c
mm/hugetlb.c
mm/interval_tree.c [new file with mode: 0644]
mm/memory-failure.c
mm/memory.c
mm/mmap.c
mm/nommu.c
mm/prio_tree.c [deleted file]
mm/rmap.c