Re: [PATCH 1/1] perf: Remove 'core_id' check in topo test
From: Jiri Olsa
Date: Sun Mar 13 2016 - 14:54:38 EST
On Thu, Dec 03, 2015 at 03:32:19PM -0800, Sukadev Bhattiprolu wrote:
> From b6bb5d9182f89cd7c6f1eff3cd5a6d3f947b8b0c Mon Sep 17 00:00:00 2001
> From: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
> Date: Thu, 3 Dec 2015 18:26:40 -0500
> Subject: [PATCH 1/1] perf: Remove 'core_id' check in topo test
hi,
looks like this one fell through the cracks
Arnaldo, could you please queue it..
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx> ;-)
thanks,
jirka
>
> The topology test case of 'perf test' seems to be broken on my x86
> system - due to the comparison of a "core-id" with # of CPUs online.
>
> There are 8 online CPUs:
>
> $ cat /sys/devices/system/cpu/online
> 0-7
>
> but core-ids are not sequential and some core-ids exceed the number
> of online CPUs.
>
> $ cat /sys/devices/system/cpu/cpu?/topology/core_id
> 0
> 1
> 9
> 10
> 0
> 1
> 9
> 10
>
> Looks like we can safely remove the check. Output before:
>
> $ ./perf --version
> perf version 4.4.rc1.g34258a
>
> $ ./perf test -v topo
> 36: Test topology in session :
> --- start ---
> test child forked, pid 5906
> templ file: /tmp/perf-test-vCwWG3
> core_id number is too big.You may need to upgrade the perf tool.
> test child interrupted
> ---- end ----
> Test topology in session: FAILED!
>
> and after:
>
> ./perf test -v topo
> 36: Test topology in session :
> --- start ---
> test child forked, pid 6532
> templ file: /tmp/perf-test-y10wFJ
> CPU 0, core 0, socket 0
> CPU 1, core 1, socket 0
> CPU 2, core 9, socket 0
> CPU 3, core 10, socket 0
> CPU 4, core 0, socket 1
> CPU 5, core 1, socket 1
> CPU 6, core 9, socket 1
> CPU 7, core 10, socket 1
> test child finished with 0
> ---- end ----
> Test topology in session: Ok
>
> Signed-off-by: Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx>
> Cc: kan.liang@xxxxxxxxx
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> ---
> tools/perf/util/header.c | 5 -----
> 1 file changed, 5 deletions(-)
>
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index 4383800..e74f94d 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -1652,11 +1652,6 @@ static int process_cpu_topology(struct perf_file_section *section,
> if (ph->needs_swap)
> nr = bswap_32(nr);
>
> - if (nr > (u32)cpu_nr) {
> - pr_debug("core_id number is too big."
> - "You may need to upgrade the perf tool.\n");
> - goto free_cpu;
> - }
> ph->env.cpu[i].core_id = nr;
>
> ret = readn(fd, &nr, sizeof(nr));
> --
> 2.1.0
>