[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170615105720.GH1486@dhcp22.suse.cz>
Date: Thu, 15 Jun 2017 12:57:21 +0200
From: Michal Hocko <mhocko@...nel.org>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Vlastimil Babka <vbabka@...e.cz>,
David Rientjes <rientjes@...gle.com>,
Johannes Weiner <hannes@...xchg.org>,
Andrew Morton <akpm@...ux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] oom, trace: Remove ENUM evaluation of COMPACTION_FEEDBACK
On Thu 15-06-17 06:48:23, Steven Rostedt wrote:
> From: Steven Rostedt (VMware) <rostedt@...dmis.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) <rostedt@...dmis.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
Powered by blists - more mailing lists