Lines Matching +full:cpu +full:- +full:core
1 /* SPDX-License-Identifier: GPL-2.0 */
3 #include "perf-sys.h"
7 #include "util/parse-events.h"
14 static int perf_do_probe_api(setup_probe_fn_t fn, struct perf_cpu cpu, const char *str) in perf_do_probe_api() argument
19 int err = -EAGAIN, fd; in perf_do_probe_api()
20 static pid_t pid = -1; in perf_do_probe_api()
24 return -ENOMEM; in perf_do_probe_api()
32 fd = sys_perf_event_open(&evsel->core.attr, pid, cpu.cpu, -1, flags); in perf_do_probe_api()
34 if (pid == -1 && errno == EACCES) { in perf_do_probe_api()
46 fd = sys_perf_event_open(&evsel->core.attr, pid, cpu.cpu, -1, flags); in perf_do_probe_api()
49 err = -EINVAL; in perf_do_probe_api()
62 const char *try[] = {"cycles:u", "instructions:u", "cpu-clock:u", NULL}; in perf_probe_api()
64 struct perf_cpu cpu; in perf_probe_api() local
70 cpu = perf_cpu_map__cpu(cpus, 0); in perf_probe_api()
74 ret = perf_do_probe_api(fn, cpu, try[i++]); in perf_probe_api()
77 } while (ret == -EAGAIN && try[i]); in perf_probe_api()
84 evsel->core.attr.sample_type |= PERF_SAMPLE_IDENTIFIER; in perf_probe_sample_identifier()
89 evsel->core.attr.comm_exec = 1; in perf_probe_comm_exec()
94 evsel->core.attr.context_switch = 1; in perf_probe_context_switch()
99 evsel->core.attr.text_poke = 1; in perf_probe_text_poke()
104 evsel->core.attr.build_id = 1; in perf_probe_build_id()
109 evsel->core.attr.cgroup = 1; in perf_probe_cgroup()
140 struct perf_cpu cpu; in perf_can_record_cpu_wide() local
147 cpu = perf_cpu_map__cpu(cpus, 0); in perf_can_record_cpu_wide()
150 fd = sys_perf_event_open(&attr, -1, cpu.cpu, -1, 0); in perf_can_record_cpu_wide()
168 * Non-zero value causes the kernel to calculate the effective in perf_can_aux_sample()
175 fd = sys_perf_event_open(&attr, -1, 0, -1, 0); in perf_can_aux_sample()