Re: [PATCH] perf bench numa: Fix cpu0 binding

From: Arnaldo Carvalho de Melo
Date: Thu Aug 01 2019 - 10:35:24 EST


Em Thu, Aug 01, 2019 at 04:26:42PM +0200, Jiri Olsa escreveu:
> Michael reported an issue with perf bench numa failing with
> binding to cpu0 with '-0' option.
>
> # perf bench numa mem -p 3 -t 1 -P 512 -s 100 -zZcm0 --thp 1 -M 1 -ddd
> # Running 'numa/mem' benchmark:
>
> # Running main, "perf bench numa numa-mem -p 3 -t 1 -P 512 -s 100 -zZcm0 --thp 1 -M 1 -ddd"
> binding to node 0, mask: 0000000000000001 => -1
> perf: bench/numa.c:356: bind_to_memnode: Assertion `!(ret)' failed.
> Aborted (core dumped)
>
> This happens when the cpu0 is not part of node0,
> which is the benchmark assumption and we can see
> that's not the case for some powerpc servers.
>
> Using correct node for cpu0 binding.

Thanks, applied to perf/urgent.

- Arnaldo

> Cc: Satheesh Rajendran <sathnaga@xxxxxxxxxxxxxxxxxx>
> Reported-by: Michael Petlan <mpetlan@xxxxxxxxxx>
> Link: http://lkml.kernel.org/n/tip-9m9j1xm3xjaa1sogvbva0o8i@xxxxxxxxxxxxxx
> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> ---
> tools/perf/bench/numa.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c
> index a640ca7aaada..513cb2f2fa32 100644
> --- a/tools/perf/bench/numa.c
> +++ b/tools/perf/bench/numa.c
> @@ -379,8 +379,10 @@ static u8 *alloc_data(ssize_t bytes0, int map_flags,
>
> /* Allocate and initialize all memory on CPU#0: */
> if (init_cpu0) {
> - orig_mask = bind_to_node(0);
> - bind_to_memnode(0);
> + int node = numa_node_of_cpu(0);
> +
> + orig_mask = bind_to_node(node);
> + bind_to_memnode(node);
> }
>
> bytes = bytes0 + HPSIZE;
> --
> 2.21.0

--

- Arnaldo