• Hugh Dickins's avatar
    mm: kill validate_anon_vma to avoid mapcount BUG · 30acbaba
    Hugh Dickins authored
    validate_anon_vma gave a useful check on the integrity of the anon_vma list
    when Andrea was developing obj rmap; but it was not enabled in SLES9
    itself, nor in mainline, until Nick changed commented-out RMAP_DEBUG to
    configurable CONFIG_DEBUG_VM in 2.6.17.  Now Petr Vandrovec reports that
    its BUG_ON(mapcount > 100000) can easily crash a CONFIG_DEBUG_VM=y system.
    
    That limit was just an arbitrary number to protect against an infinite
    loop.  We could raise it to something enormous (depending on sizeof struct
    vma and size of memory?); but I rather think validate_anon_vma has outlived
    its usefulness, and is better just removed - which gives a magnificent
    performance boost to anything like Petr's test program ;)
    
    Of course, a very long anon_vma list is bad news for preemption latency,
    and I believe there has been one recent report of such: let's not forget
    that, but validate_anon_vma only makes it worse not better.
    Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
    Cc: Petr Vandrovec <petr@vmware.com>
    Acked-by: default avatarNick Piggin <npiggin@suse.de>
    Cc: Andrea Arcangeli <andrea@suse.de>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    30acbaba
rmap.c 26.3 KB