mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
libperf: Move 'leader' from tools/perf to perf_evsel::leader
Move evsel::leader to perf_evsel::leader, so we can move the group interface to libperf. Also add several evsel helpers to ease up the transition: struct evsel *evsel__leader(struct evsel *evsel); - get leader evsel bool evsel__has_leader(struct evsel *evsel, struct evsel *leader); - true if evsel has leader as leader bool evsel__is_leader(struct evsel *evsel); - true if evsel is itw own leader void evsel__set_leader(struct evsel *evsel, struct evsel *leader); - set leader for evsel Committer notes: Fix this when building with 'make BUILD_BPF_SKEL=1' tools/perf/util/bpf_counter.c - if (evsel->leader->core.nr_members > 1) { + if (evsel->core.leader->nr_members > 1) { 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-4-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
38fe0e0156
commit
fba7c86601
20 changed files with 103 additions and 77 deletions
|
@ -1899,6 +1899,7 @@ static void perf_sample__fprint_metric(struct perf_script *script,
|
|||
struct perf_sample *sample,
|
||||
FILE *fp)
|
||||
{
|
||||
struct evsel *leader = evsel__leader(evsel);
|
||||
struct perf_stat_output_ctx ctx = {
|
||||
.print_metric = script_print_metric,
|
||||
.new_line = script_new_line,
|
||||
|
@ -1915,7 +1916,7 @@ static void perf_sample__fprint_metric(struct perf_script *script,
|
|||
|
||||
if (!evsel->stats)
|
||||
evlist__alloc_stats(script->session->evlist, false);
|
||||
if (evsel_script(evsel->leader)->gnum++ == 0)
|
||||
if (evsel_script(leader)->gnum++ == 0)
|
||||
perf_stat__reset_shadow_stats();
|
||||
val = sample->period * evsel->scale;
|
||||
perf_stat__update_shadow_stats(evsel,
|
||||
|
@ -1923,8 +1924,8 @@ static void perf_sample__fprint_metric(struct perf_script *script,
|
|||
sample->cpu,
|
||||
&rt_stat);
|
||||
evsel_script(evsel)->val = val;
|
||||
if (evsel_script(evsel->leader)->gnum == evsel->leader->core.nr_members) {
|
||||
for_each_group_member (ev2, evsel->leader) {
|
||||
if (evsel_script(leader)->gnum == leader->core.nr_members) {
|
||||
for_each_group_member (ev2, leader) {
|
||||
perf_stat__print_shadow_stats(&stat_config, ev2,
|
||||
evsel_script(ev2)->val,
|
||||
sample->cpu,
|
||||
|
@ -1932,7 +1933,7 @@ static void perf_sample__fprint_metric(struct perf_script *script,
|
|||
NULL,
|
||||
&rt_stat);
|
||||
}
|
||||
evsel_script(evsel->leader)->gnum = 0;
|
||||
evsel_script(leader)->gnum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue