diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2013-03-15 01:48:48 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-03-15 12:06:10 -0400 |
commit | a74b4b66cc027110272a18cd50cc6ee93483e78d (patch) | |
tree | dee2505e04f5b62964da9188ec138bcb9e9527a8 | |
parent | 736b05a0462aff65140865bacd5e04d1813e73e1 (diff) |
perf evlist: Introduce perf_evlist__close()
It's a pair of perf_evlist__open().
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1363326533-3310-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | tools/perf/util/evlist.c | 19 | ||||
-rw-r--r-- | tools/perf/util/evlist.h | 1 |
2 files changed, 13 insertions, 7 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 5b012b8d7a14..1344fbd2472e 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c | |||
@@ -721,10 +721,20 @@ void perf_evlist__set_selected(struct perf_evlist *evlist, | |||
721 | evlist->selected = evsel; | 721 | evlist->selected = evsel; |
722 | } | 722 | } |
723 | 723 | ||
724 | void perf_evlist__close(struct perf_evlist *evlist) | ||
725 | { | ||
726 | struct perf_evsel *evsel; | ||
727 | int ncpus = cpu_map__nr(evlist->cpus); | ||
728 | int nthreads = thread_map__nr(evlist->threads); | ||
729 | |||
730 | list_for_each_entry_reverse(evsel, &evlist->entries, node) | ||
731 | perf_evsel__close(evsel, ncpus, nthreads); | ||
732 | } | ||
733 | |||
724 | int perf_evlist__open(struct perf_evlist *evlist) | 734 | int perf_evlist__open(struct perf_evlist *evlist) |
725 | { | 735 | { |
726 | struct perf_evsel *evsel; | 736 | struct perf_evsel *evsel; |
727 | int err, ncpus, nthreads; | 737 | int err; |
728 | 738 | ||
729 | list_for_each_entry(evsel, &evlist->entries, node) { | 739 | list_for_each_entry(evsel, &evlist->entries, node) { |
730 | err = perf_evsel__open(evsel, evlist->cpus, evlist->threads); | 740 | err = perf_evsel__open(evsel, evlist->cpus, evlist->threads); |
@@ -734,12 +744,7 @@ int perf_evlist__open(struct perf_evlist *evlist) | |||
734 | 744 | ||
735 | return 0; | 745 | return 0; |
736 | out_err: | 746 | out_err: |
737 | ncpus = cpu_map__nr(evlist->cpus); | 747 | perf_evlist__close(evlist); |
738 | nthreads = thread_map__nr(evlist->threads); | ||
739 | |||
740 | list_for_each_entry_reverse(evsel, &evlist->entries, node) | ||
741 | perf_evsel__close(evsel, ncpus, nthreads); | ||
742 | |||
743 | errno = -err; | 748 | errno = -err; |
744 | return err; | 749 | return err; |
745 | } | 750 | } |
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index c096da7d6d58..0583d36252be 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h | |||
@@ -81,6 +81,7 @@ struct perf_evsel *perf_evlist__id2evsel(struct perf_evlist *evlist, u64 id); | |||
81 | union perf_event *perf_evlist__mmap_read(struct perf_evlist *self, int idx); | 81 | union perf_event *perf_evlist__mmap_read(struct perf_evlist *self, int idx); |
82 | 82 | ||
83 | int perf_evlist__open(struct perf_evlist *evlist); | 83 | int perf_evlist__open(struct perf_evlist *evlist); |
84 | void perf_evlist__close(struct perf_evlist *evlist); | ||
84 | 85 | ||
85 | void perf_evlist__config(struct perf_evlist *evlist, | 86 | void perf_evlist__config(struct perf_evlist *evlist, |
86 | struct perf_record_opts *opts); | 87 | struct perf_record_opts *opts); |