• Joonsoo Kim's avatar
    mm, vmalloc: iterate vmap_area_list, instead of vmlist in vread/vwrite() · e81ce85f
    Joonsoo Kim authored
    Now, when we hold a vmap_area_lock, va->vm can't be discarded.  So we can
    safely access to va->vm when iterating a vmap_area_list with holding a
    vmap_area_lock.  With this property, change iterating vmlist codes in
    vread/vwrite() to iterating vmap_area_list.
    There is a little difference relate to lock, because vmlist_lock is mutex,
    but, vmap_area_lock is spin_lock.  It may introduce a spinning overhead
    during vread/vwrite() is executing.  But, these are debug-oriented
    functions, so this overhead is not real problem for common case.
    Signed-off-by: default avatarJoonsoo Kim <js1304@gmail.com>
    Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.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: Chris Metcalf <cmetcalf@tilera.com>
    Cc: Dave Anderson <anderson@redhat.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
vmalloc.c 67.3 KB