On Thu 15-06-17 06:48:23, Steven Rostedt wrote: > From: Steven Rostedt (VMware) <rost...@goodmis.org> > > 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.
I will be honest with you. Even if I understood how this voodoo mapping works I forgot everything. So if the COMPACTION_*->names keeps working I have no objection to the patch. > Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org> > --- > diff --git a/include/trace/events/mmflags.h > b/include/trace/events/mmflags.h index 304ff94..10e3663 100644 > --- a/include/trace/events/mmflags.h > +++ b/include/trace/events/mmflags.h > @@ -257,7 +257,7 @@ > IF_HAVE_VM_SOFTDIRTY(VM_SOFTDIRTY, "softdirty" > ) \ COMPACTION_STATUS > COMPACTION_PRIORITY > -COMPACTION_FEEDBACK > +/* COMPACTION_FEEDBACK are defines not enums. Not needed here. */ > ZONE_TYPE > LRU_NAMES > -- Michal Hocko SUSE Labs