• Steven Rostedt (VMware)'s avatar
    oom, trace: remove ENUM evaluation of COMPACTION_FEEDBACK · 7ab0e50a
    Steven Rostedt (VMware) authored
    After enabling CONFIG_TRACE_ENUM_MAP_FILE (which will soon be renamed to
    CONFIG_TRACE_EVAL_MAP_FILE), I am able to examine the enums that have
    been evaluated:
    
     # cat /sys/kernel/debug/tracing/enum_map
    
    (which will soon be renamed to eval_map)
    
    And it showed some interesting results:
    
      [..]
      ZONE_MOVABLE 3 (oom)
      ZONE_NORMAL 2 (oom)
      ZONE_DMA32 1 (oom)
      ZONE_DMA 0 (oom)
      3 3 (oom)
      2 2 (oom)
      1 1 (oom)
      COMPACT_PRIO_ASYNC 2 (oom)
      COMPACT_PRIO_SYNC_LIGHT 1 (oom)
      COMPACT_PRIO_SYNC_FULL 0 (oom)
      [..]
      ZONE_DMA 0 (vmscan)
      3 3 (vmscan)
      2 2 (vmscan)
      1 1 (vmscan)
      COMPACT_PRIO_ASYNC 2 (vmscan)
      [..]
      ZONE_DMA 0 (kmem)
      3 3 (kmem)
      2 2 (kmem)
      1 1 (kmem)
      COMPACT_PRIO_ASYNC 2 (kmem)
      [..]
      ZONE_DMA 0 (compaction)
      3 3 (compaction)
      2 2 (compaction)
      1 1 (compaction)
      COMPACT_PRIO_ASYNC 2 (compaction)
      [..]
    
    The name within the parenthesis are the trace systems that the enum/eval
    maps are associated with. When there's a number evaluated to another
    number, that tells me that the TRACE_DEFINE_ENUM() was used on a #define
    and not an enum. As #defines get converted normally, they are not needed
    to be evaluated.
    
    Each of the above trace systems with the number to number evaluation
    included the file include/trace/events/mmflags.h which has:
    
     /* High-level compaction status feedback */
     #define COMPACTION_FAILED       1
     #define COMPACTION_WITHDRAWN    2
     #define COMPACTION_PROGRESS     3
    
    [..]
    
     #define COMPACTION_FEEDBACK             \
            EM(COMPACTION_FAILED,           "failed")       \
            EM(COMPACTION_WITHDRAWN,        "withdrawn")    \
            EMe(COMPACTION_PROGRESS,        "progress")
    
    Which is still needed for the __print_symbolic() usage in the
    trace_event.  But it is not needed to be evaluated.
    
    Removing the evaluation part removes the unnecessary evaluations of
    numbers to numbers.
    
    Link: http://lkml.kernel.org/r/20170615074944.7be9a647@gandalf.local.homeSigned-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Vlastimil 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>
    7ab0e50a
mmflags.h 8.52 KB