WSL2-Linux-Kernel/arch/unicore32/mm
Joonsoo Kim ef93247325 mm, vmalloc: change iterating a vmlist to find_vm_area()
This patchset removes vm_struct list management after initializing
vmalloc.  Adding and removing an entry to vmlist is linear time
complexity, so it is inefficient.  If we maintain this list, overall
time complexity of adding and removing area to vmalloc space is O(N),
although we use rbtree for finding vacant place and it's time complexity
is just O(logN).

And vmlist and vmlist_lock is used many places of outside of vmalloc.c.
It is preferable that we hide this raw data structure and provide
well-defined function for supporting them, because it makes that they
cannot mistake when manipulating theses structure and it makes us easily
maintain vmalloc layer.

For kexec and makedumpfile, I export vmap_area_list, instead of vmlist.
This comes from Atsushi's recommendation.  For more information, please
refer below link.  https://lkml.org/lkml/2012/12/6/184

This patch:

The purpose of iterating a vmlist is finding vm area with specific virtual
address.  find_vm_area() is provided for this purpose and more efficient,
because it uses a rbtree.  So change it.

Signed-off-by: Joonsoo Kim <js1304@gmail.com>
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn>
Acked-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>
Cc: Dave Anderson <anderson@redhat.com>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-29 15:54:33 -07:00
..
Kconfig unicore32 core architecture: mm related: generic codes 2011-03-17 09:19:08 +08:00
Makefile unicore32: replace unicore32-specific iomap functions with generic lib implementation 2011-03-17 09:19:21 +08:00
alignment.c Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] 2012-03-28 18:30:03 +01:00
cache-ucv2.S unicore32 core architecture: mm related: consistent device DMA handling 2011-03-17 09:19:09 +08:00
dma-swiotlb.c Unicore32: adapt for dma_map_ops changes 2012-03-28 16:36:39 +02:00
extable.c unicore32 core architecture: mm related: fault handling 2011-03-17 09:19:09 +08:00
fault.c unicore32/mm/fault.c: Port OOM changes to do_pf 2012-11-09 17:30:08 +08:00
flush.c Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] 2012-03-28 18:30:03 +01:00
init.c mm/unicore32: use common help functions to free reserved pages 2013-04-29 15:54:31 -07:00
ioremap.c mm, vmalloc: change iterating a vmlist to find_vm_area() 2013-04-29 15:54:33 -07:00
mm.h Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] 2012-03-28 18:30:03 +01:00
mmu.c memblock: Fix include breakages caused by 24aa07882b 2011-12-08 10:22:06 -08:00
pgd.c unicore32 upgrade to v2.6.38-rc5: add one more paramter for pte_alloc_map call 2011-03-17 09:19:18 +08:00
proc-macros.S unicore32 core architecture: processor and system headers 2011-03-17 09:19:06 +08:00
proc-syms.c unicore32 core architecture: generic elf and ksyms stuff 2011-03-17 09:19:05 +08:00
proc-ucv2.S unicore32 core architecture: processor and system headers 2011-03-17 09:19:06 +08:00
tlb-ucv2.S unicore32 core architecture: mm related: consistent device DMA handling 2011-03-17 09:19:09 +08:00