diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-01-25 11:10:00 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-01-30 08:35:02 -0500 |
commit | ec13abc37f71c89189350dce491189fb5b659184 (patch) | |
tree | ba8dce3257409d11df66650b4e8d9c35493f6295 | |
parent | c0aab59f67ef47e52d151464c8dd16e7ae58d053 (diff) |
perf tests: Fix leaks on PERF_RECORD_* test
This test:
7: Validate PERF_RECORD_* events & perf_sample fields
needs to call perf_evlist__delete_maps().
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-t3181qy15avffdacqjcxfku2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/tests/perf-record.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/tools/perf/tests/perf-record.c b/tools/perf/tests/perf-record.c index 6ea66cf6791b..1e8e5128d0da 100644 --- a/tools/perf/tests/perf-record.c +++ b/tools/perf/tests/perf-record.c | |||
@@ -96,7 +96,7 @@ int test__PERF_RECORD(void) | |||
96 | err = perf_evlist__prepare_workload(evlist, &opts, argv); | 96 | err = perf_evlist__prepare_workload(evlist, &opts, argv); |
97 | if (err < 0) { | 97 | if (err < 0) { |
98 | pr_debug("Couldn't run the workload!\n"); | 98 | pr_debug("Couldn't run the workload!\n"); |
99 | goto out_delete_evlist; | 99 | goto out_delete_maps; |
100 | } | 100 | } |
101 | 101 | ||
102 | /* | 102 | /* |
@@ -111,7 +111,7 @@ int test__PERF_RECORD(void) | |||
111 | err = sched__get_first_possible_cpu(evlist->workload.pid, &cpu_mask); | 111 | err = sched__get_first_possible_cpu(evlist->workload.pid, &cpu_mask); |
112 | if (err < 0) { | 112 | if (err < 0) { |
113 | pr_debug("sched__get_first_possible_cpu: %s\n", strerror(errno)); | 113 | pr_debug("sched__get_first_possible_cpu: %s\n", strerror(errno)); |
114 | goto out_delete_evlist; | 114 | goto out_delete_maps; |
115 | } | 115 | } |
116 | 116 | ||
117 | cpu = err; | 117 | cpu = err; |
@@ -121,7 +121,7 @@ int test__PERF_RECORD(void) | |||
121 | */ | 121 | */ |
122 | if (sched_setaffinity(evlist->workload.pid, cpu_mask_size, &cpu_mask) < 0) { | 122 | if (sched_setaffinity(evlist->workload.pid, cpu_mask_size, &cpu_mask) < 0) { |
123 | pr_debug("sched_setaffinity: %s\n", strerror(errno)); | 123 | pr_debug("sched_setaffinity: %s\n", strerror(errno)); |
124 | goto out_delete_evlist; | 124 | goto out_delete_maps; |
125 | } | 125 | } |
126 | 126 | ||
127 | /* | 127 | /* |
@@ -131,7 +131,7 @@ int test__PERF_RECORD(void) | |||
131 | err = perf_evlist__open(evlist); | 131 | err = perf_evlist__open(evlist); |
132 | if (err < 0) { | 132 | if (err < 0) { |
133 | pr_debug("perf_evlist__open: %s\n", strerror(errno)); | 133 | pr_debug("perf_evlist__open: %s\n", strerror(errno)); |
134 | goto out_delete_evlist; | 134 | goto out_delete_maps; |
135 | } | 135 | } |
136 | 136 | ||
137 | /* | 137 | /* |
@@ -142,7 +142,7 @@ int test__PERF_RECORD(void) | |||
142 | err = perf_evlist__mmap(evlist, opts.mmap_pages, false); | 142 | err = perf_evlist__mmap(evlist, opts.mmap_pages, false); |
143 | if (err < 0) { | 143 | if (err < 0) { |
144 | pr_debug("perf_evlist__mmap: %s\n", strerror(errno)); | 144 | pr_debug("perf_evlist__mmap: %s\n", strerror(errno)); |
145 | goto out_delete_evlist; | 145 | goto out_delete_maps; |
146 | } | 146 | } |
147 | 147 | ||
148 | /* | 148 | /* |
@@ -305,6 +305,8 @@ found_exit: | |||
305 | } | 305 | } |
306 | out_err: | 306 | out_err: |
307 | perf_evlist__munmap(evlist); | 307 | perf_evlist__munmap(evlist); |
308 | out_delete_maps: | ||
309 | perf_evlist__delete_maps(evlist); | ||
308 | out_delete_evlist: | 310 | out_delete_evlist: |
309 | perf_evlist__delete(evlist); | 311 | perf_evlist__delete(evlist); |
310 | out: | 312 | out: |