perf test: Remove 'core_id' check in topo test
authorSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Thu, 3 Dec 2015 23:26:40 +0000 (18:26 -0500)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 11 Mar 2016 16:45:04 +0000 (13:45 -0300)
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@linux.vnet.ibm.com>
Cc: Jan Stancek <jstancek@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Link: http://lkml.kernel.org/r/20151203233219.GA27696@us.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/header.c

index 73e38e472ecd7771695b7ac2d91829a35529f419..90680ec9f8b89fa3cc0964df15585fbe92246a46 100644 (file)
@@ -1872,11 +1872,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));