Skip to content
  • Carsten Otte's avatar
    #ifdef very expensive debug check in page fault path · 9723198c
    Carsten Otte authored
    
    
    This patch puts #ifdef CONFIG_DEBUG_VM around a check in vm_normal_page
    that verifies that a pfn is valid.  This patch increases performance of the
    page fault microbenchmark in lmbench by 13% and overall dbench performance
    by 7% on s390x.  pfn_valid() is an expensive operation on s390 that needs a
    high double digit amount of CPU cycles.  Nick Piggin suggested that
    pfn_valid() involves an array lookup on systems with sparsemem, and
    therefore is an expensive operation there too.
    
    The check looks like a clear debug thing to me, it should never trigger on
    regular kernels.  And if a pte is created for an invalid pfn, we'll find
    out once the memory gets accessed later on anyway.  Please consider
    inclusion of this patch into mm.
    
    Signed-off-by: default avatarCarsten Otte <cotte@de.ibm.com>
    Acked-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    9723198c