Skip to contentSkip to conversation

perf test: Check counts on all cpus in test__open_syscall_event_on_all_cpus

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Jan 26, 2011 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  d2af9687c96f3864178de1860e6d83873aeef224
Gitweb:     http://git.kernel.org/tip/d2af9687c96f3864178de1860e6d83873aeef224
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Fri, 14 Jan 2011 16:24:49 -0200
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Sat, 22 Jan 2011 19:56:30 -0200

perf test: Check counts on all cpus in test__open_syscall_event_on_all_cpus

We were bailing out after the first count mismatch, do it in all to see if only some CPUs are not getting the expected number of events.

Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Cc: Tom Zanussi <[email protected]>
LKML-Reference: <new-submission>

---
 tools/perf/builtin-test.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
tools/perf/builtin-test.c +5 -3
index 7287158..7cc6b20 100644
@@ -408,6 +408,8 @@ static int test__open_syscall_event_on_all_cpus(void)
 		goto out_close_fd;
 	}
 
+	err = 0;
+
 	for (cpu = 0; cpu < cpus->nr; ++cpu) {
 		unsigned int expected;
 
@@ -416,18 +418,18 @@ static int test__open_syscall_event_on_all_cpus(void)
 
 		if (perf_evsel__read_on_cpu(evsel, cpu, 0) < 0) {
 			pr_debug("perf_evsel__open_read_on_cpu\n");
-			goto out_close_fd;
+			err = -1;
+			break;
 		}
 
 		expected = nr_open_calls + cpu;
 		if (evsel->counts->cpu[cpu].val != expected) {
 			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n",
 				 expected, cpus->map[cpu], evsel->counts->cpu[cpu].val);
-			goto out_close_fd;
+			err = -1;
 		}
 	}
 
-	err = 0;
 out_close_fd:
 	perf_evsel__close_fd(evsel, 1, threads->nr);
 out_evsel_delete: