Skip to contentSkip to conversation

perf: Remove 'core_id' check in topo test

PATCH In review Sukadev Bhattiprolu 3 participants 4 messages Dec 3, 2015 – Mar 24, 2016 1 message not in the archive perf events

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 perf: Remove 'core_id' check in topo test

Quoted 1 line

From b6bb5d9182f89cd7c6f1eff3cd5a6d3f947b8b0c Mon Sep 17 00:00:00 2001

From: Sukadev Bhattiprolu <[email protected]>
Date: Thu, 3 Dec 2015 18:26:40 -0500
Subject: [PATCH 1/1] perf: Remove 'core_id' check in topo test

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

---
 tools/perf/util/header.c | 5 -----
 1 file changed, 5 deletions(-)
tools/perf/util/header.c +0 -5
index 4383800..e74f94d 100644
@@ -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));
Signature · 1 line
2.1.0
Acked-by on v1 1/1
#1 lore raw
Quoted 4 lines · Sukadev Bhattiprolu

From b6bb5d9182f89cd7c6f1eff3cd5a6d3f947b8b0c Mon Sep 17 00:00:00 2001
From: Sukadev Bhattiprolu <[email protected]>
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..

thanks,
jirka

Quoted 82 lines

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

---
 tools/perf/util/header.c | 5 -----
 1 file changed, 5 deletions(-)
tools/perf/util/header.c +0 -5
index 4383800..e74f94d 100644
@@ -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));
Signature · 1 line
2.1.0

A message that is not in the archive (sent off-list or not yet received): CA+JHD91sxsyzfQt3NhyXdjtTFYjWfN7jj7kAWuj0v2+D=tpSNg@mail.gmail.com

#3 lore raw
Quoted 2 lines · Arnaldo Carvalho de Melo

Its in perf/core as if a few days ago, IIRC
Le 13 mars 2016 3:54 PM, "Jiri Olsa" <[email protected]> a écrit :

cool, thanks

jirka

Quoted 103 lines
Quoted 103 lines · Sukadev Bhattiprolu
Quoted 4 lines

From b6bb5d9182f89cd7c6f1eff3cd5a6d3f947b8b0c Mon Sep 17 00:00:00 2001
From: Sukadev Bhattiprolu <[email protected]>
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..

thanks,
jirka

tools/perf/util/header.c static int process_cpu_topology(struct

Quoted 68 lines

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

---
 tools/perf/util/header.c | 5 -----
 1 file changed, 5 deletions(-)
tools/perf/util/header.c +0 -0
index 4383800..e74f94d 100644
@@ -1652,11 +1652,6 @@ static int process_cpu_topology(struct

perf_file_section *section,

tools/perf/util/header.c static int process_cpu_topology(struct perf_file_section *section,

Quoted 6 lines
tools/perf/util/header.c +0 -3
              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");

Quoted 8 lines
tools/perf/util/header.c +0 -3
-                     goto free_cpu;
-             }
              ph->env.cpu[i].core_id = nr;
 
              ret = readn(fd, &nr, sizeof(nr));
--

2.1.0

#4 lore raw

[tip:perf/urgent] perf test: Remove 'core_id' check in topo test

In reply to Sukadev Bhattiprolu
perf test: Remove 'core_id' check in topo test
Commit-ID:  4c9d6c18fdebfcfb18918a656355a3c7c3d45e13
Gitweb:     http://git.kernel.org/tip/4c9d6c18fdebfcfb18918a656355a3c7c3d45e13
Author:     Sukadev Bhattiprolu <[email protected]>
AuthorDate: Thu, 3 Dec 2015 18:26:40 -0500
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Fri, 11 Mar 2016 13:45:04 -0300

perf test: Remove 'core_id' check in topo test

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
---
 tools/perf/util/header.c | 5 -----
 1 file changed, 5 deletions(-)
tools/perf/util/header.c +0 -5
index 73e38e4..90680ec 100644
@@ -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));