• Michal Hocko's avatar
    oom, trace: add compaction retry tracepoint · 65190cff
    Michal Hocko authored
    Higher order requests oom debugging is currently quite hard.  We do have
    some compaction points which can tell us how the compaction is operating
    but there is no trace point to tell us about compaction retry logic.
    This patch adds a one which will have the following format
    
                bash-3126  [001] ....  1498.220001: compact_retry: order=9 priority=COMPACT_PRIO_SYNC_LIGHT compaction_result=withdrawn retries=0 max_retries=16 should_retry=0
    
    we can see that the order 9 request is not retried even though we are in
    the highest compaction priority mode becase the last compaction attempt
    was withdrawn.  This means that compaction_zonelist_suitable must have
    returned false and there is no suitable zone to compact for this request
    and so no need to retry further.
    
    another example would be
               <...>-3137  [001] ....    81.501689: compact_retry: order=9 priority=COMPACT_PRIO_SYNC_LIGHT compaction_result=failed retries=0 max_retries=16 should_retry=0
    
    in this case the order-9 compaction failed to find any suitable block.
    We do not retry anymore because this is a costly request and those do
    not go below COMPACT_PRIO_SYNC_LIGHT priority.
    
    Link: http://lkml.kernel.org/r/20161220130135.15719-4-mhocko@kernel.orgSigned-off-by: default avatarMichal Hocko <mhocko@suse.com>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    65190cff
page_alloc.c 204 KB