• Mel Gorman's avatar
    mm, page_alloc: don't duplicate code in free_pcp_prepare · e2769dbd
    Mel Gorman authored
    The new free_pcp_prepare() function shares a lot of code with
    free_pages_prepare(), which makes this a maintenance risk when some
    future patch modifies only one of them.  We should be able to achieve
    the same effect (skipping free_pages_check() from !DEBUG_VM configs) by
    adding a parameter to free_pages_prepare() and making it inline, so the
    checks (and the order != 0 parts) are eliminated from the call from
    free_pcp_prepare().
    
    !DEBUG_VM: bloat-o-meter reports no difference, as my gcc was already
    inlining free_pages_prepare() and the elimination seems to work as
    expected
    
    DEBUG_VM bloat-o-meter:
    
      add/remove: 0/1 grow/shrink: 2/0 up/down: 1035/-778 (257)
      function                                     old     new   delta
      __free_pages_ok                              297    1060    +763
      free_hot_cold_page                           480     752    +272
      free_pages_prepare                           778       -    -778
    
    Here inlining didn't occur before, and added some code, but it's ok for
    a debug option.
    
    [akpm@linux-foundation.org: fix build]
    Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e2769dbd
page_alloc.c 202 KB