Skip to content

Commit 38fe0e0

Browse files
Jiri Olsaacmel
authored andcommitted
libperf: Move 'idx' from tools/perf to perf_evsel::idx
Move evsel::idx to perf_evsel::idx, so we can move the group interface to libperf. Committer notes: Fixup evsel->idx usage in tools/perf/util/bpf_counter_cgroup.c, that appeared in my tree in my local tree. Also fixed up these: $ find tools/perf/ -name "*.[ch]" | xargs grep 'evsel->idx' tools/perf/ui/gtk/annotate.c: evsel->idx + i); tools/perf/ui/gtk/annotate.c: evsel->idx); $ That running 'make -C tools/perf build-test' caught. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Requested-by: Shunsuke Nakamura <nakamura.shun@fujitsu.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20210706151704.73662-3-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 3d97060 commit 38fe0e0

File tree

21 files changed

+59
-58
lines changed

21 files changed

+59
-58
lines changed

tools/lib/perf/evlist.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ static void perf_evlist__propagate_maps(struct perf_evlist *evlist)
6666
void perf_evlist__add(struct perf_evlist *evlist,
6767
struct perf_evsel *evsel)
6868
{
69+
evsel->idx = evlist->nr_entries;
6970
list_add_tail(&evsel->node, &evlist->entries);
7071
evlist->nr_entries += 1;
7172
__perf_evlist__propagate_maps(evlist, evsel);

tools/lib/perf/evsel.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@
1818
#include <sys/ioctl.h>
1919
#include <sys/mman.h>
2020

21-
void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr)
21+
void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr,
22+
int idx)
2223
{
2324
INIT_LIST_HEAD(&evsel->node);
2425
evsel->attr = *attr;
26+
evsel->idx = idx;
2527
}
2628

2729
struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr)
2830
{
2931
struct perf_evsel *evsel = zalloc(sizeof(*evsel));
3032

3133
if (evsel != NULL)
32-
perf_evsel__init(evsel, attr);
34+
perf_evsel__init(evsel, attr, 0);
3335

3436
return evsel;
3537
}

tools/lib/perf/include/internal/evsel.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ struct perf_evsel {
4949
/* parse modifier helper */
5050
int nr_members;
5151
bool system_wide;
52+
int idx;
5253
};
5354

54-
void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr);
55+
void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr,
56+
int idx);
5557
int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads);
5658
void perf_evsel__close_fd(struct perf_evsel *evsel);
5759
void perf_evsel__free_fd(struct perf_evsel *evsel);

tools/perf/arch/x86/util/iostat.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ static int iostat_event_group(struct evlist *evl,
322322
}
323323

324324
evlist__for_each_entry(evl, evsel) {
325-
evsel->priv = list->rps[evsel->idx / metrics_count];
325+
evsel->priv = list->rps[evsel->core.idx / metrics_count];
326326
}
327327
list->nr_entries = 0;
328328
err:
@@ -428,7 +428,7 @@ void iostat_print_metric(struct perf_stat_config *config, struct evsel *evsel,
428428
{
429429
double iostat_value = 0;
430430
u64 prev_count_val = 0;
431-
const char *iostat_metric = iostat_metric_by_idx(evsel->idx);
431+
const char *iostat_metric = iostat_metric_by_idx(evsel->core.idx);
432432
u8 die = ((struct iio_root_port *)evsel->priv)->die;
433433
struct perf_counts_values *count = perf_counts(evsel->counts, die, 0);
434434

tools/perf/builtin-diff.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1031,12 +1031,12 @@ static int process_base_stream(struct data__file *data_base,
10311031
continue;
10321032

10331033
es_base = evsel_streams__entry(data_base->evlist_streams,
1034-
evsel_base->idx);
1034+
evsel_base->core.idx);
10351035
if (!es_base)
10361036
return -1;
10371037

10381038
es_pair = evsel_streams__entry(data_pair->evlist_streams,
1039-
evsel_pair->idx);
1039+
evsel_pair->core.idx);
10401040
if (!es_pair)
10411041
return -1;
10421042

tools/perf/builtin-report.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ static int process_read_event(struct perf_tool *tool,
332332
const char *name = evsel__name(evsel);
333333
int err = perf_read_values_add_value(&rep->show_threads_values,
334334
event->read.pid, event->read.tid,
335-
evsel->idx,
335+
evsel->core.idx,
336336
name,
337337
event->read.value);
338338

@@ -666,7 +666,7 @@ static int report__collapse_hists(struct report *rep)
666666
evlist__for_each_entry(rep->session->evlist, pos) {
667667
struct hists *hists = evsel__hists(pos);
668668

669-
if (pos->idx == 0)
669+
if (pos->core.idx == 0)
670670
hists->symbol_filter_str = rep->symbol_filter_str;
671671

672672
hists->socket_filter = rep->socket_filter;

tools/perf/builtin-top.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,9 @@ static void perf_top__show_details(struct perf_top *top)
264264

265265
if (top->evlist->enabled) {
266266
if (top->zero)
267-
symbol__annotate_zero_histogram(symbol, top->sym_evsel->idx);
267+
symbol__annotate_zero_histogram(symbol, top->sym_evsel->core.idx);
268268
else
269-
symbol__annotate_decay_histogram(symbol, top->sym_evsel->idx);
269+
symbol__annotate_decay_histogram(symbol, top->sym_evsel->core.idx);
270270
}
271271
if (more != 0)
272272
printf("%d lines not displayed, maybe increase display entries [e]\n", more);
@@ -530,7 +530,7 @@ static bool perf_top__handle_keypress(struct perf_top *top, int c)
530530
fprintf(stderr, "\nAvailable events:");
531531

532532
evlist__for_each_entry(top->evlist, top->sym_evsel)
533-
fprintf(stderr, "\n\t%d %s", top->sym_evsel->idx, evsel__name(top->sym_evsel));
533+
fprintf(stderr, "\n\t%d %s", top->sym_evsel->core.idx, evsel__name(top->sym_evsel));
534534

535535
prompt_integer(&counter, "Enter details event counter");
536536

@@ -541,7 +541,7 @@ static bool perf_top__handle_keypress(struct perf_top *top, int c)
541541
break;
542542
}
543543
evlist__for_each_entry(top->evlist, top->sym_evsel)
544-
if (top->sym_evsel->idx == counter)
544+
if (top->sym_evsel->core.idx == counter)
545545
break;
546546
} else
547547
top->sym_evsel = evlist__first(top->evlist);

tools/perf/tests/evsel-roundtrip-name.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ static int perf_evsel__roundtrip_cache_name_test(void)
4444

4545
for (i = 0; i < PERF_COUNT_HW_CACHE_RESULT_MAX; i++) {
4646
__evsel__hw_cache_type_op_res_name(type, op, i, name, sizeof(name));
47-
if (evsel->idx != idx)
47+
if (evsel->core.idx != idx)
4848
continue;
4949

5050
++idx;
@@ -84,9 +84,9 @@ static int __perf_evsel__name_array_test(const char *names[], int nr_names,
8484

8585
err = 0;
8686
evlist__for_each_entry(evlist, evsel) {
87-
if (strcmp(evsel__name(evsel), names[evsel->idx / distance])) {
87+
if (strcmp(evsel__name(evsel), names[evsel->core.idx / distance])) {
8888
--err;
89-
pr_debug("%s != %s\n", evsel__name(evsel), names[evsel->idx / distance]);
89+
pr_debug("%s != %s\n", evsel__name(evsel), names[evsel->core.idx / distance]);
9090
}
9191
}
9292

tools/perf/tests/mmap-basic.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,18 +139,18 @@ int test__basic_mmap(struct test *test __maybe_unused, int subtest __maybe_unuse
139139
" doesn't map to an evsel\n", sample.id);
140140
goto out_delete_evlist;
141141
}
142-
nr_events[evsel->idx]++;
142+
nr_events[evsel->core.idx]++;
143143
perf_mmap__consume(&md->core);
144144
}
145145
perf_mmap__read_done(&md->core);
146146

147147
out_init:
148148
err = 0;
149149
evlist__for_each_entry(evlist, evsel) {
150-
if (nr_events[evsel->idx] != expected_nr_events[evsel->idx]) {
150+
if (nr_events[evsel->core.idx] != expected_nr_events[evsel->core.idx]) {
151151
pr_debug("expected %d %s events, got %d\n",
152-
expected_nr_events[evsel->idx],
153-
evsel__name(evsel), nr_events[evsel->idx]);
152+
expected_nr_events[evsel->core.idx],
153+
evsel__name(evsel), nr_events[evsel->core.idx]);
154154
err = -1;
155155
goto out_delete_evlist;
156156
}

tools/perf/ui/browsers/annotate.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ static int annotate_browser__run(struct annotate_browser *browser,
749749
hbt->timer(hbt->arg);
750750

751751
if (delay_secs != 0) {
752-
symbol__annotate_decay_histogram(sym, evsel->idx);
752+
symbol__annotate_decay_histogram(sym, evsel->core.idx);
753753
hists__scnprintf_title(hists, title, sizeof(title));
754754
annotate_browser__show(&browser->b, title, help);
755755
}

0 commit comments

Comments
 (0)