mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
perf inject: Use perf_tool__init()
Use perf_tool__init() so that more uses of 'struct perf_tool' can be const and not relying on perf_tool__fill_defaults(). Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Anshuman Khandual <anshuman.khandual@arm.com> Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Cc: Huacai Chen <chenhuacai@kernel.org> Cc: Ilkka Koskinen <ilkka@os.amperecomputing.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Jonathan Cameron <jonathan.cameron@huawei.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linux.dev> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: Nick Terrell <terrelln@fb.com> Cc: Oliver Upton <oliver.upton@linux.dev> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Song Liu <song@kernel.org> Cc: Sun Haiyong <sunhaiyong@loongson.cn> Cc: Suzuki Poulouse <suzuki.poulose@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Yanteng Si <siyanteng@loongson.cn> Cc: Yicong Yang <yangyicong@hisilicon.com> Cc: linux-arm-kernel@lists.infradead.org Link: https://lore.kernel.org/r/20240812204720.631678-15-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
2fa28ccb17
commit
a37c0436f3
|
|
@ -2165,47 +2165,6 @@ static int __cmd_inject(struct perf_inject *inject)
|
|||
int cmd_inject(int argc, const char **argv)
|
||||
{
|
||||
struct perf_inject inject = {
|
||||
.tool = {
|
||||
.sample = perf_event__repipe_sample,
|
||||
.read = perf_event__repipe_sample,
|
||||
.mmap = perf_event__repipe,
|
||||
.mmap2 = perf_event__repipe,
|
||||
.comm = perf_event__repipe,
|
||||
.namespaces = perf_event__repipe,
|
||||
.cgroup = perf_event__repipe,
|
||||
.fork = perf_event__repipe,
|
||||
.exit = perf_event__repipe,
|
||||
.lost = perf_event__repipe,
|
||||
.lost_samples = perf_event__repipe,
|
||||
.aux = perf_event__repipe,
|
||||
.itrace_start = perf_event__repipe,
|
||||
.aux_output_hw_id = perf_event__repipe,
|
||||
.context_switch = perf_event__repipe,
|
||||
.throttle = perf_event__repipe,
|
||||
.unthrottle = perf_event__repipe,
|
||||
.ksymbol = perf_event__repipe,
|
||||
.bpf = perf_event__repipe,
|
||||
.text_poke = perf_event__repipe,
|
||||
.attr = perf_event__repipe_attr,
|
||||
.event_update = perf_event__repipe_event_update,
|
||||
.tracing_data = perf_event__repipe_op2_synth,
|
||||
.finished_round = perf_event__repipe_oe_synth,
|
||||
.build_id = perf_event__repipe_op2_synth,
|
||||
.id_index = perf_event__repipe_op2_synth,
|
||||
.auxtrace_info = perf_event__repipe_op2_synth,
|
||||
.auxtrace_error = perf_event__repipe_op2_synth,
|
||||
.time_conv = perf_event__repipe_op2_synth,
|
||||
.thread_map = perf_event__repipe_op2_synth,
|
||||
.cpu_map = perf_event__repipe_op2_synth,
|
||||
.stat_config = perf_event__repipe_op2_synth,
|
||||
.stat = perf_event__repipe_op2_synth,
|
||||
.stat_round = perf_event__repipe_op2_synth,
|
||||
.feature = perf_event__repipe_op2_synth,
|
||||
.finished_init = perf_event__repipe_op2_synth,
|
||||
.compressed = perf_event__repipe_op4_synth,
|
||||
.auxtrace = perf_event__repipe_auxtrace,
|
||||
.dont_split_sample_group = true,
|
||||
},
|
||||
.input_name = "-",
|
||||
.samples = LIST_HEAD_INIT(inject.samples),
|
||||
.output = {
|
||||
|
|
@ -2270,6 +2229,7 @@ int cmd_inject(int argc, const char **argv)
|
|||
"perf inject [<options>]",
|
||||
NULL
|
||||
};
|
||||
bool ordered_events;
|
||||
|
||||
if (!inject.itrace_synth_opts.set) {
|
||||
/* Disable eager loading of kernel symbols that adds overhead to perf inject. */
|
||||
|
|
@ -2334,7 +2294,48 @@ int cmd_inject(int argc, const char **argv)
|
|||
if (strcmp(inject.input_name, "-"))
|
||||
repipe = false;
|
||||
}
|
||||
|
||||
ordered_events = inject.jit_mode || inject.sched_stat ||
|
||||
(inject.build_ids && !inject.build_id_all);
|
||||
perf_tool__init(&inject.tool, ordered_events);
|
||||
inject.tool.sample = perf_event__repipe_sample;
|
||||
inject.tool.read = perf_event__repipe_sample;
|
||||
inject.tool.mmap = perf_event__repipe;
|
||||
inject.tool.mmap2 = perf_event__repipe;
|
||||
inject.tool.comm = perf_event__repipe;
|
||||
inject.tool.namespaces = perf_event__repipe;
|
||||
inject.tool.cgroup = perf_event__repipe;
|
||||
inject.tool.fork = perf_event__repipe;
|
||||
inject.tool.exit = perf_event__repipe;
|
||||
inject.tool.lost = perf_event__repipe;
|
||||
inject.tool.lost_samples = perf_event__repipe;
|
||||
inject.tool.aux = perf_event__repipe;
|
||||
inject.tool.itrace_start = perf_event__repipe;
|
||||
inject.tool.aux_output_hw_id = perf_event__repipe;
|
||||
inject.tool.context_switch = perf_event__repipe;
|
||||
inject.tool.throttle = perf_event__repipe;
|
||||
inject.tool.unthrottle = perf_event__repipe;
|
||||
inject.tool.ksymbol = perf_event__repipe;
|
||||
inject.tool.bpf = perf_event__repipe;
|
||||
inject.tool.text_poke = perf_event__repipe;
|
||||
inject.tool.attr = perf_event__repipe_attr;
|
||||
inject.tool.event_update = perf_event__repipe_event_update;
|
||||
inject.tool.tracing_data = perf_event__repipe_op2_synth;
|
||||
inject.tool.finished_round = perf_event__repipe_oe_synth;
|
||||
inject.tool.build_id = perf_event__repipe_op2_synth;
|
||||
inject.tool.id_index = perf_event__repipe_op2_synth;
|
||||
inject.tool.auxtrace_info = perf_event__repipe_op2_synth;
|
||||
inject.tool.auxtrace_error = perf_event__repipe_op2_synth;
|
||||
inject.tool.time_conv = perf_event__repipe_op2_synth;
|
||||
inject.tool.thread_map = perf_event__repipe_op2_synth;
|
||||
inject.tool.cpu_map = perf_event__repipe_op2_synth;
|
||||
inject.tool.stat_config = perf_event__repipe_op2_synth;
|
||||
inject.tool.stat = perf_event__repipe_op2_synth;
|
||||
inject.tool.stat_round = perf_event__repipe_op2_synth;
|
||||
inject.tool.feature = perf_event__repipe_op2_synth;
|
||||
inject.tool.finished_init = perf_event__repipe_op2_synth;
|
||||
inject.tool.compressed = perf_event__repipe_op4_synth;
|
||||
inject.tool.auxtrace = perf_event__repipe_auxtrace;
|
||||
inject.tool.dont_split_sample_group = true;
|
||||
inject.session = __perf_session__new(&data, repipe,
|
||||
output_fd(&inject),
|
||||
&inject.tool);
|
||||
|
|
@ -2373,7 +2374,6 @@ int cmd_inject(int argc, const char **argv)
|
|||
* mmaps. We cannot generate the buildid hit list and
|
||||
* inject the jit mmaps at the same time for now.
|
||||
*/
|
||||
inject.tool.ordered_events = true;
|
||||
inject.tool.ordering_requires_timestamps = true;
|
||||
if (known_build_ids != NULL) {
|
||||
inject.known_build_ids =
|
||||
|
|
@ -2386,15 +2386,10 @@ int cmd_inject(int argc, const char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
if (inject.sched_stat) {
|
||||
inject.tool.ordered_events = true;
|
||||
}
|
||||
|
||||
#ifdef HAVE_JITDUMP
|
||||
if (inject.jit_mode) {
|
||||
inject.tool.mmap2 = perf_event__jit_repipe_mmap2;
|
||||
inject.tool.mmap = perf_event__jit_repipe_mmap;
|
||||
inject.tool.ordered_events = true;
|
||||
inject.tool.ordering_requires_timestamps = true;
|
||||
/*
|
||||
* JIT MMAP injection injects all MMAP events in one go, so it
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user