perf evlist: Introduce evlist__for_each() & friends
For the common evsel list traversal, so that it becomes more compact. Use the opportunity to start ditching the 'perf_' from 'perf_evlist__', as discussed, as the whole conversion touches a lot of places, lets do it piecemeal when we have the chance due to other work, like in this case. Cc: Adrian Hunter <adrian.hunter@intel.com> 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@kernel.org> 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-qnkx7dzm2h6m6uptkfk03ni6@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -81,7 +81,7 @@ static void perf_evlist__update_id_pos(struct perf_evlist *evlist)
|
||||
{
|
||||
struct perf_evsel *evsel;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node)
|
||||
evlist__for_each(evlist, evsel)
|
||||
perf_evsel__calc_id_pos(evsel);
|
||||
|
||||
perf_evlist__set_id_pos(evlist);
|
||||
@@ -91,7 +91,7 @@ static void perf_evlist__purge(struct perf_evlist *evlist)
|
||||
{
|
||||
struct perf_evsel *pos, *n;
|
||||
|
||||
list_for_each_entry_safe(pos, n, &evlist->entries, node) {
|
||||
evlist__for_each_safe(evlist, n, pos) {
|
||||
list_del_init(&pos->node);
|
||||
perf_evsel__delete(pos);
|
||||
}
|
||||
@@ -148,7 +148,7 @@ void __perf_evlist__set_leader(struct list_head *list)
|
||||
|
||||
leader->nr_members = evsel->idx - leader->idx + 1;
|
||||
|
||||
list_for_each_entry(evsel, list, node) {
|
||||
__evlist__for_each(list, evsel) {
|
||||
evsel->leader = leader;
|
||||
}
|
||||
}
|
||||
@@ -207,7 +207,7 @@ static int perf_evlist__add_attrs(struct perf_evlist *evlist,
|
||||
return 0;
|
||||
|
||||
out_delete_partial_list:
|
||||
list_for_each_entry_safe(evsel, n, &head, node)
|
||||
__evlist__for_each_safe(&head, n, evsel)
|
||||
perf_evsel__delete(evsel);
|
||||
return -1;
|
||||
}
|
||||
@@ -228,7 +228,7 @@ perf_evlist__find_tracepoint_by_id(struct perf_evlist *evlist, int id)
|
||||
{
|
||||
struct perf_evsel *evsel;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
if (evsel->attr.type == PERF_TYPE_TRACEPOINT &&
|
||||
(int)evsel->attr.config == id)
|
||||
return evsel;
|
||||
@@ -243,7 +243,7 @@ perf_evlist__find_tracepoint_by_name(struct perf_evlist *evlist,
|
||||
{
|
||||
struct perf_evsel *evsel;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
if ((evsel->attr.type == PERF_TYPE_TRACEPOINT) &&
|
||||
(strcmp(evsel->name, name) == 0))
|
||||
return evsel;
|
||||
@@ -273,7 +273,7 @@ void perf_evlist__disable(struct perf_evlist *evlist)
|
||||
int nr_threads = thread_map__nr(evlist->threads);
|
||||
|
||||
for (cpu = 0; cpu < nr_cpus; cpu++) {
|
||||
list_for_each_entry(pos, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, pos) {
|
||||
if (!perf_evsel__is_group_leader(pos) || !pos->fd)
|
||||
continue;
|
||||
for (thread = 0; thread < nr_threads; thread++)
|
||||
@@ -291,7 +291,7 @@ void perf_evlist__enable(struct perf_evlist *evlist)
|
||||
int nr_threads = thread_map__nr(evlist->threads);
|
||||
|
||||
for (cpu = 0; cpu < nr_cpus; cpu++) {
|
||||
list_for_each_entry(pos, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, pos) {
|
||||
if (!perf_evsel__is_group_leader(pos) || !pos->fd)
|
||||
continue;
|
||||
for (thread = 0; thread < nr_threads; thread++)
|
||||
@@ -630,7 +630,7 @@ static int perf_evlist__mmap_per_evsel(struct perf_evlist *evlist, int idx,
|
||||
{
|
||||
struct perf_evsel *evsel;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
int fd = FD(evsel, cpu, thread);
|
||||
|
||||
if (*output == -1) {
|
||||
@@ -806,7 +806,7 @@ int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages,
|
||||
pr_debug("mmap size %zuB\n", evlist->mmap_len);
|
||||
mask = evlist->mmap_len - page_size - 1;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
if ((evsel->attr.read_format & PERF_FORMAT_ID) &&
|
||||
evsel->sample_id == NULL &&
|
||||
perf_evsel__alloc_id(evsel, cpu_map__nr(cpus), threads->nr) < 0)
|
||||
@@ -849,7 +849,7 @@ int perf_evlist__apply_filters(struct perf_evlist *evlist)
|
||||
const int ncpus = cpu_map__nr(evlist->cpus),
|
||||
nthreads = thread_map__nr(evlist->threads);
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
if (evsel->filter == NULL)
|
||||
continue;
|
||||
|
||||
@@ -868,7 +868,7 @@ int perf_evlist__set_filter(struct perf_evlist *evlist, const char *filter)
|
||||
const int ncpus = cpu_map__nr(evlist->cpus),
|
||||
nthreads = thread_map__nr(evlist->threads);
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
err = perf_evsel__set_filter(evsel, ncpus, nthreads, filter);
|
||||
if (err)
|
||||
break;
|
||||
@@ -887,7 +887,7 @@ bool perf_evlist__valid_sample_type(struct perf_evlist *evlist)
|
||||
if (evlist->id_pos < 0 || evlist->is_pos < 0)
|
||||
return false;
|
||||
|
||||
list_for_each_entry(pos, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, pos) {
|
||||
if (pos->id_pos != evlist->id_pos ||
|
||||
pos->is_pos != evlist->is_pos)
|
||||
return false;
|
||||
@@ -903,7 +903,7 @@ u64 __perf_evlist__combined_sample_type(struct perf_evlist *evlist)
|
||||
if (evlist->combined_sample_type)
|
||||
return evlist->combined_sample_type;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node)
|
||||
evlist__for_each(evlist, evsel)
|
||||
evlist->combined_sample_type |= evsel->attr.sample_type;
|
||||
|
||||
return evlist->combined_sample_type;
|
||||
@@ -921,7 +921,7 @@ bool perf_evlist__valid_read_format(struct perf_evlist *evlist)
|
||||
u64 read_format = first->attr.read_format;
|
||||
u64 sample_type = first->attr.sample_type;
|
||||
|
||||
list_for_each_entry_continue(pos, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, pos) {
|
||||
if (read_format != pos->attr.read_format)
|
||||
return false;
|
||||
}
|
||||
@@ -978,7 +978,7 @@ bool perf_evlist__valid_sample_id_all(struct perf_evlist *evlist)
|
||||
{
|
||||
struct perf_evsel *first = perf_evlist__first(evlist), *pos = first;
|
||||
|
||||
list_for_each_entry_continue(pos, &evlist->entries, node) {
|
||||
evlist__for_each_continue(evlist, pos) {
|
||||
if (first->attr.sample_id_all != pos->attr.sample_id_all)
|
||||
return false;
|
||||
}
|
||||
@@ -1004,7 +1004,7 @@ void perf_evlist__close(struct perf_evlist *evlist)
|
||||
int ncpus = cpu_map__nr(evlist->cpus);
|
||||
int nthreads = thread_map__nr(evlist->threads);
|
||||
|
||||
list_for_each_entry_reverse(evsel, &evlist->entries, node)
|
||||
evlist__for_each_reverse(evlist, evsel)
|
||||
perf_evsel__close(evsel, ncpus, nthreads);
|
||||
}
|
||||
|
||||
@@ -1015,7 +1015,7 @@ int perf_evlist__open(struct perf_evlist *evlist)
|
||||
|
||||
perf_evlist__update_id_pos(evlist);
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
err = perf_evsel__open(evsel, evlist->cpus, evlist->threads);
|
||||
if (err < 0)
|
||||
goto out_err;
|
||||
@@ -1154,7 +1154,7 @@ size_t perf_evlist__fprintf(struct perf_evlist *evlist, FILE *fp)
|
||||
struct perf_evsel *evsel;
|
||||
size_t printed = 0;
|
||||
|
||||
list_for_each_entry(evsel, &evlist->entries, node) {
|
||||
evlist__for_each(evlist, evsel) {
|
||||
printed += fprintf(fp, "%s%s", evsel->idx ? ", " : "",
|
||||
perf_evsel__name(evsel));
|
||||
}
|
||||
@@ -1233,7 +1233,7 @@ void perf_evlist__to_front(struct perf_evlist *evlist,
|
||||
if (move_evsel == perf_evlist__first(evlist))
|
||||
return;
|
||||
|
||||
list_for_each_entry_safe(evsel, n, &evlist->entries, node) {
|
||||
evlist__for_each_safe(evlist, n, evsel) {
|
||||
if (evsel->leader == move_evsel->leader)
|
||||
list_move_tail(&evsel->node, &move);
|
||||
}
|
||||
|
Reference in New Issue
Block a user