• Cliff Wickman's avatar
    mm, x86: Saving vmcore with non-lazy freeing of vmas · 3ee48b6a
    Cliff Wickman authored
    During the reading of /proc/vmcore the kernel is doing
    ioremap()/iounmap() repeatedly. And the buildup of un-flushed
    vm_area_struct's is causing a great deal of overhead. (rb_next()
    is chewing up most of that time).
    This solution is to provide function set_iounmap_nonlazy(). It
    causes a subsequent call to iounmap() to immediately purge the
    vma area (with try_purge_vmap_area_lazy()).
    With this patch we have seen the time for writing a 250MB
    compressed dump drop from 71 seconds to 44 seconds.
    Signed-off-by: default avatarCliff Wickman <cpw@sgi.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: kexec@lists.infradead.org
    Cc: <stable@kernel.org>
    LKML-Reference: <E1OwHZ4-0005WK-Tw@eag09.americas.sgi.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
vmalloc.c 61.1 KB