Re: [PATCH] perf mem2node: Improve warning if detected no memory nodes

From: Jiri Olsa
Date: Tue Oct 20 2020 - 02:06:42 EST


On Mon, Oct 19, 2020 at 08:36:13AM +0800, Leo Yan wrote:
> Some archs (e.g. x86 and Arm64) don't enable the configuration
> CONFIG_MEMORY_HOTPLUG by default, if this configuration is not enabled
> when build the kernel image, the SysFS for memory nodes will be missed.
> This results in perf tool has no chance to catpure the memory nodes
> information, when perf tool reports the result and detects no memory
> nodes, it outputs "assertion failed at util/mem2node.c:99".
>
> The output log doesn't give out reason for the failure and users have no
> clue for how to fix it. This patch changes to use explicit way for
> warning: it tells user that detected no memory nodes and suggests to
> enable CONFIG_MEMORY_HOTPLUG for kernel building.
>
> Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>

Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> ---
> tools/perf/util/mem2node.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/mem2node.c b/tools/perf/util/mem2node.c
> index c84f5841c7ab..03a7d7b27737 100644
> --- a/tools/perf/util/mem2node.c
> +++ b/tools/perf/util/mem2node.c
> @@ -96,7 +96,8 @@ int mem2node__init(struct mem2node *map, struct perf_env *env)
>
> /* Cut unused entries, due to merging. */
> tmp_entries = realloc(entries, sizeof(*entries) * j);
> - if (tmp_entries || WARN_ON_ONCE(j == 0))
> + if (tmp_entries ||
> + WARN_ONCE(j == 0, "No memory nodes, is CONFIG_MEMORY_HOTPLUG enabled?\n"))
> entries = tmp_entries;
>
> for (i = 0; i < j; i++) {
> --
> 2.17.1
>