/Linux-v6.1/tools/perf/util/ |
D | evsel.h | 60 struct evsel { struct 110 struct evsel **metric_events; argument 111 struct evsel *metric_leader; argument 200 static inline struct perf_cpu_map *evsel__cpus(struct evsel *evsel) in evsel__cpus() argument 202 return perf_evsel__cpus(&evsel->core); in evsel__cpus() 205 static inline int evsel__nr_cpus(struct evsel *evsel) in evsel__nr_cpus() argument 207 return perf_cpu_map__nr(evsel__cpus(evsel)); in evsel__nr_cpus() 210 void evsel__compute_deltas(struct evsel *evsel, int cpu, int thread, 214 int (*init)(struct evsel *evsel), 215 void (*fini)(struct evsel *evsel)); [all …]
|
D | evsel.c | 94 static int evsel__no_extra_init(struct evsel *evsel __maybe_unused) in evsel__no_extra_init() 101 static void evsel__no_extra_fini(struct evsel *evsel __maybe_unused) in evsel__no_extra_fini() 107 int (*init)(struct evsel *evsel); 108 void (*fini)(struct evsel *evsel); 110 .size = sizeof(struct evsel), 115 int evsel__object_config(size_t object_size, int (*init)(struct evsel *evsel), in evsel__object_config() argument 116 void (*fini)(struct evsel *evsel)) in evsel__object_config() argument 215 void evsel__calc_id_pos(struct evsel *evsel) in evsel__calc_id_pos() argument 217 evsel->id_pos = __perf_evsel__calc_id_pos(evsel->core.attr.sample_type); in evsel__calc_id_pos() 218 evsel->is_pos = __perf_evsel__calc_is_pos(evsel->core.attr.sample_type); in evsel__calc_id_pos() [all …]
|
D | bpf_counter.c | 48 static int bpf_program_profiler__destroy(struct evsel *evsel) in bpf_program_profiler__destroy() argument 53 &evsel->bpf_counter_list, list) { in bpf_program_profiler__destroy() 58 assert(list_empty(&evsel->bpf_counter_list)); in bpf_program_profiler__destroy() 102 static int bpf_program_profiler_load_one(struct evsel *evsel, u32 prog_id) in bpf_program_profiler_load_one() argument 128 skel->rodata->num_cpu = evsel__nr_cpus(evsel); in bpf_program_profiler_load_one() 130 bpf_map__set_max_entries(skel->maps.events, evsel__nr_cpus(evsel)); in bpf_program_profiler_load_one() 157 list_add(&counter->list, &evsel->bpf_counter_list); in bpf_program_profiler_load_one() 167 static int bpf_program_profiler__load(struct evsel *evsel, struct target *target) in bpf_program_profiler__load() argument 186 ret = bpf_program_profiler_load_one(evsel, prog_id); in bpf_program_profiler__load() 188 bpf_program_profiler__destroy(evsel); in bpf_program_profiler__load() [all …]
|
D | stat.c | 84 bool __perf_stat_evsel__is(struct evsel *evsel, enum perf_stat_evsel_id id) in __perf_stat_evsel__is() argument 86 struct perf_stat_evsel *ps = evsel->stats; in __perf_stat_evsel__is() 116 static void perf_stat_evsel_id_init(struct evsel *evsel) in perf_stat_evsel_id_init() argument 118 struct perf_stat_evsel *ps = evsel->stats; in perf_stat_evsel_id_init() 124 if (!strcmp(evsel__name(evsel), id_str[i]) || in perf_stat_evsel_id_init() 125 (strstr(evsel__name(evsel), id_str[i]) && evsel->pmu_name in perf_stat_evsel_id_init() 126 && strstr(evsel__name(evsel), evsel->pmu_name))) { in perf_stat_evsel_id_init() 133 static void evsel__reset_stat_priv(struct evsel *evsel) in evsel__reset_stat_priv() argument 135 struct perf_stat_evsel *ps = evsel->stats; in evsel__reset_stat_priv() 140 static int evsel__alloc_stat_priv(struct evsel *evsel) in evsel__alloc_stat_priv() argument [all …]
|
D | bpf_counter.h | 11 struct evsel; 15 typedef int (*bpf_counter_evsel_op)(struct evsel *evsel); 16 typedef int (*bpf_counter_evsel_target_op)(struct evsel *evsel, 18 typedef int (*bpf_counter_evsel_install_pe_op)(struct evsel *evsel, 38 int bpf_counter__load(struct evsel *evsel, struct target *target); 39 int bpf_counter__enable(struct evsel *evsel); 40 int bpf_counter__disable(struct evsel *evsel); 41 int bpf_counter__read(struct evsel *evsel); 42 void bpf_counter__destroy(struct evsel *evsel); 43 int bpf_counter__install_pe(struct evsel *evsel, int cpu_map_idx, int fd); [all …]
|
D | bpf_counter_cgroup.c | 39 static struct evsel *cgrp_switch; 47 struct evsel *evsel; in bperf_load_program() local 112 evlist__for_each_entry(evlist, evsel) { in bperf_load_program() 113 if (cgrp == NULL || evsel->cgrp == leader_cgrp) { in bperf_load_program() 114 leader_cgrp = evsel->cgrp; in bperf_load_program() 115 evsel->cgrp = NULL; in bperf_load_program() 118 err = evsel__open_per_cpu(evsel, evsel->core.cpus, -1); in bperf_load_program() 125 perf_cpu_map__for_each_cpu(cpu, j, evsel->core.cpus) { in bperf_load_program() 126 int fd = FD(evsel, j); in bperf_load_program() 127 __u32 idx = evsel->core.idx * total_cpus + cpu.cpu; in bperf_load_program() [all …]
|
D | evlist-hybrid.c | 21 struct evsel *evsel; in evlist__add_default_hybrid() local 29 evsel = evsel__new_cycles(precise, PERF_TYPE_HARDWARE, in evlist__add_default_hybrid() 31 if (!evsel) in evlist__add_default_hybrid() 35 evsel->core.cpus = cpus; in evlist__add_default_hybrid() 36 evsel->core.own_cpus = perf_cpu_map__get(cpus); in evlist__add_default_hybrid() 37 evsel->pmu_name = strdup(pmu->name); in evlist__add_default_hybrid() 38 evlist__add(evlist, evsel); in evlist__add_default_hybrid() 44 static bool group_hybrid_conflict(struct evsel *leader) in group_hybrid_conflict() 46 struct evsel *pos, *prev = NULL; in group_hybrid_conflict() 63 struct evsel *evsel; in evlist__warn_hybrid_group() local [all …]
|
D | record.c | 26 static struct evsel *evsel__read_sampler(struct evsel *evsel, struct evlist *evlist) in evsel__read_sampler() argument 28 struct evsel *leader = evsel__leader(evsel); in evsel__read_sampler() 32 evlist__for_each_entry(evlist, evsel) { in evsel__read_sampler() 33 if (evsel__leader(evsel) == leader && evsel != evsel__leader(evsel)) in evsel__read_sampler() 34 return evsel; in evsel__read_sampler() 41 static u64 evsel__config_term_mask(struct evsel *evsel) in evsel__config_term_mask() argument 44 struct list_head *config_terms = &evsel->config_terms; in evsel__config_term_mask() 53 static void evsel__config_leader_sampling(struct evsel *evsel, struct evlist *evlist) in evsel__config_leader_sampling() argument 55 struct perf_event_attr *attr = &evsel->core.attr; in evsel__config_leader_sampling() 56 struct evsel *leader = evsel__leader(evsel); in evsel__config_leader_sampling() [all …]
|
D | evlist.c | 122 struct evsel *first = evlist__first(evlist); in evlist__set_id_pos() 130 struct evsel *evsel; in evlist__update_id_pos() local 132 evlist__for_each_entry(evlist, evsel) in evlist__update_id_pos() 133 evsel__calc_id_pos(evsel); in evlist__update_id_pos() 140 struct evsel *pos, *n; in evlist__purge() 171 void evlist__add(struct evlist *evlist, struct evsel *entry) in evlist__add() 181 void evlist__remove(struct evlist *evlist, struct evsel *evsel) in evlist__remove() argument 183 evsel->evlist = NULL; in evlist__remove() 184 perf_evlist__remove(&evlist->core, &evsel->core); in evlist__remove() 190 struct evsel *evsel, *temp, *leader = NULL; in evlist__splice_list_tail() local [all …]
|
D | perf_api_probe.c | 12 typedef void (*setup_probe_fn_t)(struct evsel *evsel); 17 struct evsel *evsel; in perf_do_probe_api() local 29 evsel = evlist__first(evlist); in perf_do_probe_api() 32 fd = sys_perf_event_open(&evsel->core.attr, pid, cpu.cpu, -1, flags); in perf_do_probe_api() 44 fn(evsel); in perf_do_probe_api() 46 fd = sys_perf_event_open(&evsel->core.attr, pid, cpu.cpu, -1, flags); in perf_do_probe_api() 82 static void perf_probe_sample_identifier(struct evsel *evsel) in perf_probe_sample_identifier() argument 84 evsel->core.attr.sample_type |= PERF_SAMPLE_IDENTIFIER; in perf_probe_sample_identifier() 87 static void perf_probe_comm_exec(struct evsel *evsel) in perf_probe_comm_exec() argument 89 evsel->core.attr.comm_exec = 1; in perf_probe_comm_exec() [all …]
|
D | evlist.h | 66 struct evsel *selected; 100 void evlist__add(struct evlist *evlist, struct evsel *entry); 101 void evlist__remove(struct evlist *evlist, struct evsel *evsel); 122 struct evsel *arch_evlist__leader(struct list_head *list); 125 struct evsel *evlist__add_aux_dummy(struct evlist *evlist, bool system_wide); 126 static inline struct evsel *evlist__add_dummy_on_all_cpus(struct evlist *evlist) in evlist__add_dummy_on_all_cpus() 130 struct evsel *evlist__add_sched_switch(struct evlist *evlist, bool system_wide); 156 struct evsel *evlist__find_tracepoint_by_id(struct evlist *evlist, int id); 157 struct evsel *evlist__find_tracepoint_by_name(struct evlist *evlist, const char *name); 168 struct evsel *evlist__id2evsel(struct evlist *evlist, u64 id); [all …]
|
D | sideband_evlist.c | 18 struct evsel *evsel; in evlist__add_sb_event() local 25 evsel = evsel__new_idx(attr, evlist->core.nr_entries); in evlist__add_sb_event() 26 if (!evsel) in evlist__add_sb_event() 29 evsel->side_band.cb = cb; in evlist__add_sb_event() 30 evsel->side_band.data = data; in evlist__add_sb_event() 31 evlist__add(evlist, evsel); in evlist__add_sb_event() 65 struct evsel *evsel = evlist__event2evsel(evlist, event); in perf_evlist__poll_thread() local 67 if (evsel && evsel->side_band.cb) in perf_evlist__poll_thread() 68 evsel->side_band.cb(event, evsel->side_band.data); in perf_evlist__poll_thread() 86 struct evsel *evsel; in evlist__set_cb() local [all …]
|
D | kvm-stat.h | 11 struct evsel; 50 void (*get_key)(struct evsel *evsel, 57 bool (*is_begin_event)(struct evsel *evsel, 60 bool (*is_end_event)(struct evsel *evsel, 114 void exit_event_get_key(struct evsel *evsel, 117 bool exit_event_begin(struct evsel *evsel, 120 bool exit_event_end(struct evsel *evsel, 127 bool kvm_exit_event(struct evsel *evsel); 128 bool kvm_entry_event(struct evsel *evsel);
|
D | counts.c | 54 void evsel__reset_counts(struct evsel *evsel) in evsel__reset_counts() argument 56 perf_counts__reset(evsel->counts); in evsel__reset_counts() 59 int evsel__alloc_counts(struct evsel *evsel) in evsel__alloc_counts() argument 61 struct perf_cpu_map *cpus = evsel__cpus(evsel); in evsel__alloc_counts() 62 int nthreads = perf_thread_map__nr(evsel->core.threads); in evsel__alloc_counts() 64 evsel->counts = perf_counts__new(perf_cpu_map__nr(cpus), nthreads); in evsel__alloc_counts() 65 return evsel->counts != NULL ? 0 : -ENOMEM; in evsel__alloc_counts() 68 void evsel__free_counts(struct evsel *evsel) in evsel__free_counts() argument 70 perf_counts__delete(evsel->counts); in evsel__free_counts() 71 evsel->counts = NULL; in evsel__free_counts()
|
/Linux-v6.1/tools/perf/tests/ |
D | parse-events.c | 51 struct evsel *evsel = evlist__first(evlist); in test__checkevent_tracepoint() local 55 TEST_ASSERT_VAL("wrong type", PERF_TYPE_TRACEPOINT == evsel->core.attr.type); in test__checkevent_tracepoint() 57 PERF_TP_SAMPLE_TYPE == evsel->core.attr.sample_type); in test__checkevent_tracepoint() 58 TEST_ASSERT_VAL("wrong sample_period", 1 == evsel->core.attr.sample_period); in test__checkevent_tracepoint() 64 struct evsel *evsel; in test__checkevent_tracepoint_multi() local 69 evlist__for_each_entry(evlist, evsel) { in test__checkevent_tracepoint_multi() 71 PERF_TYPE_TRACEPOINT == evsel->core.attr.type); in test__checkevent_tracepoint_multi() 73 PERF_TP_SAMPLE_TYPE == evsel->core.attr.sample_type); in test__checkevent_tracepoint_multi() 75 1 == evsel->core.attr.sample_period); in test__checkevent_tracepoint_multi() 82 struct evsel *evsel = evlist__first(evlist); in test__checkevent_raw() local [all …]
|
D | evsel-tp-sched.c | 8 static int evsel__test_field(struct evsel *evsel, const char *name, int size, bool should_be_signed) in evsel__test_field() argument 10 struct tep_format_field *field = evsel__field(evsel, name); in evsel__test_field() 15 pr_debug("%s: \"%s\" field not found!\n", evsel->name, name); in evsel__test_field() 22 evsel->name, name, is_signed, should_be_signed); in evsel__test_field() 28 evsel->name, name, field->size, size); in evsel__test_field() 38 struct evsel *evsel = evsel__newtp("sched", "sched_switch"); in test__perf_evsel__tp_sched_test() local 41 if (IS_ERR(evsel)) { in test__perf_evsel__tp_sched_test() 42 pr_debug("evsel__newtp failed with %ld\n", PTR_ERR(evsel)); in test__perf_evsel__tp_sched_test() 46 if (evsel__test_field(evsel, "prev_comm", 16, false)) in test__perf_evsel__tp_sched_test() 49 if (evsel__test_field(evsel, "prev_pid", 4, true)) in test__perf_evsel__tp_sched_test() [all …]
|
D | event-times.c | 19 struct evsel *evsel = evlist__last(evlist); in attach__enable_on_exec() local 41 evsel->core.attr.enable_on_exec = 1; in attach__enable_on_exec() 61 struct evsel *evsel = evlist__last(evlist); in attach__current_disabled() local 73 evsel->core.attr.disabled = 1; in attach__current_disabled() 75 err = evsel__open_per_thread(evsel, threads); in attach__current_disabled() 82 return evsel__enable(evsel) == 0 ? TEST_OK : TEST_FAIL; in attach__current_disabled() 87 struct evsel *evsel = evlist__last(evlist); in attach__current_enabled() local 99 err = evsel__open_per_thread(evsel, threads); in attach__current_enabled() 107 struct evsel *evsel = evlist__last(evlist); in detach__disable() local 109 return evsel__enable(evsel); in detach__disable() [all …]
|
/Linux-v6.1/tools/lib/perf/ |
D | evsel.c | 22 void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr, in perf_evsel__init() argument 25 INIT_LIST_HEAD(&evsel->node); in perf_evsel__init() 26 evsel->attr = *attr; in perf_evsel__init() 27 evsel->idx = idx; in perf_evsel__init() 28 evsel->leader = evsel; in perf_evsel__init() 33 struct perf_evsel *evsel = zalloc(sizeof(*evsel)); in perf_evsel__new() local 35 if (evsel != NULL) in perf_evsel__new() 36 perf_evsel__init(evsel, attr, 0); in perf_evsel__new() 38 return evsel; in perf_evsel__new() 41 void perf_evsel__delete(struct perf_evsel *evsel) in perf_evsel__delete() argument [all …]
|
D | evlist.c | 37 struct perf_evsel *evsel) in __perf_evlist__propagate_maps() argument 43 if (evsel->system_wide) { in __perf_evlist__propagate_maps() 44 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps() 45 evsel->cpus = perf_cpu_map__new(NULL); in __perf_evlist__propagate_maps() 46 } else if (!evsel->own_cpus || evlist->has_user_cpus || in __perf_evlist__propagate_maps() 47 (!evsel->requires_cpu && perf_cpu_map__empty(evlist->user_requested_cpus))) { in __perf_evlist__propagate_maps() 48 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps() 49 evsel->cpus = perf_cpu_map__get(evlist->user_requested_cpus); in __perf_evlist__propagate_maps() 50 } else if (evsel->cpus != evsel->own_cpus) { in __perf_evlist__propagate_maps() 51 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps() [all …]
|
/Linux-v6.1/tools/perf/arch/x86/util/ |
D | kvm-stat.c | 31 static void mmio_event_get_key(struct evsel *evsel, struct perf_sample *sample, in mmio_event_get_key() argument 34 key->key = evsel__intval(evsel, sample, "gpa"); in mmio_event_get_key() 35 key->info = evsel__intval(evsel, sample, "type"); in mmio_event_get_key() 42 static bool mmio_event_begin(struct evsel *evsel, in mmio_event_begin() argument 46 if (kvm_exit_event(evsel)) in mmio_event_begin() 50 if (!strcmp(evsel->name, "kvm:kvm_mmio") && in mmio_event_begin() 51 evsel__intval(evsel, sample, "type") == KVM_TRACE_MMIO_WRITE) { in mmio_event_begin() 52 mmio_event_get_key(evsel, sample, key); in mmio_event_begin() 59 static bool mmio_event_end(struct evsel *evsel, struct perf_sample *sample, in mmio_event_end() argument 63 if (kvm_entry_event(evsel)) in mmio_event_end() [all …]
|
D | evlist.c | 15 struct evsel *evsel, *n; in ___evlist__add_default_attrs() local 28 evsel = evsel__new(attrs + i); in ___evlist__add_default_attrs() 29 if (evsel == NULL) in ___evlist__add_default_attrs() 31 list_add_tail(&evsel->core.node, &head); in ___evlist__add_default_attrs() 36 evsel = evsel__new(attrs + i); in ___evlist__add_default_attrs() 37 if (evsel == NULL) in ___evlist__add_default_attrs() 39 evsel->core.attr.config |= (__u64)pmu->type << PERF_PMU_TYPE_SHIFT; in ___evlist__add_default_attrs() 41 evsel->core.cpus = cpus; in ___evlist__add_default_attrs() 42 evsel->core.own_cpus = perf_cpu_map__get(cpus); in ___evlist__add_default_attrs() 43 evsel->pmu_name = strdup(pmu->name); in ___evlist__add_default_attrs() [all …]
|
D | evsel.c | 14 void arch_evsel__set_sample_weight(struct evsel *evsel) in arch_evsel__set_sample_weight() argument 16 evsel__set_sample_bit(evsel, WEIGHT_STRUCT); in arch_evsel__set_sample_weight() 40 bool evsel__sys_has_perf_metrics(const struct evsel *evsel) in evsel__sys_has_perf_metrics() argument 42 const char *pmu_name = evsel->pmu_name ? evsel->pmu_name : "cpu"; in evsel__sys_has_perf_metrics() 52 if ((evsel->core.attr.type == PERF_TYPE_RAW) && in evsel__sys_has_perf_metrics() 59 bool arch_evsel__must_be_in_group(const struct evsel *evsel) in arch_evsel__must_be_in_group() argument 61 if (!evsel__sys_has_perf_metrics(evsel)) in arch_evsel__must_be_in_group() 64 return evsel->name && in arch_evsel__must_be_in_group() 65 (strcasestr(evsel->name, "slots") || in arch_evsel__must_be_in_group() 66 strcasestr(evsel->name, "topdown")); in arch_evsel__must_be_in_group() [all …]
|
/Linux-v6.1/tools/lib/perf/tests/ |
D | test-evlist.c | 38 struct perf_evsel *evsel, *leader; in test_stat_cpu() local 55 evsel = leader = perf_evsel__new(&attr1); in test_stat_cpu() 56 __T("failed to create evsel1", evsel); in test_stat_cpu() 58 perf_evlist__add(evlist, evsel); in test_stat_cpu() 60 evsel = perf_evsel__new(&attr2); in test_stat_cpu() 61 __T("failed to create evsel2", evsel); in test_stat_cpu() 63 perf_evlist__add(evlist, evsel); in test_stat_cpu() 67 __T("failed to set leader", evsel->leader == leader); in test_stat_cpu() 74 perf_evlist__for_each_evsel(evlist, evsel) { in test_stat_cpu() 75 cpus = perf_evsel__cpus(evsel); in test_stat_cpu() [all …]
|
D | test-evsel.c | 23 struct perf_evsel *evsel; in test_stat_cpu() local 33 evsel = perf_evsel__new(&attr); in test_stat_cpu() 34 __T("failed to create evsel", evsel); in test_stat_cpu() 36 err = perf_evsel__open(evsel, cpus, NULL); in test_stat_cpu() 42 perf_evsel__read(evsel, idx, 0, &counts); in test_stat_cpu() 46 perf_evsel__close(evsel); in test_stat_cpu() 47 perf_evsel__delete(evsel); in test_stat_cpu() 57 struct perf_evsel *evsel; in test_stat_thread() local 69 evsel = perf_evsel__new(&attr); in test_stat_thread() 70 __T("failed to create evsel", evsel); in test_stat_thread() [all …]
|
/Linux-v6.1/tools/lib/perf/include/perf/ |
D | evsel.h | 29 LIBPERF_API void perf_evsel__delete(struct perf_evsel *evsel); 30 LIBPERF_API int perf_evsel__open(struct perf_evsel *evsel, struct perf_cpu_map *cpus, 32 LIBPERF_API void perf_evsel__close(struct perf_evsel *evsel); 33 LIBPERF_API void perf_evsel__close_cpu(struct perf_evsel *evsel, int cpu_map_idx); 34 LIBPERF_API int perf_evsel__mmap(struct perf_evsel *evsel, int pages); 35 LIBPERF_API void perf_evsel__munmap(struct perf_evsel *evsel); 36 LIBPERF_API void *perf_evsel__mmap_base(struct perf_evsel *evsel, int cpu_map_idx, int thread); 37 LIBPERF_API int perf_evsel__read(struct perf_evsel *evsel, int cpu_map_idx, int thread, 39 LIBPERF_API int perf_evsel__enable(struct perf_evsel *evsel); 40 LIBPERF_API int perf_evsel__enable_cpu(struct perf_evsel *evsel, int cpu_map_idx); [all …]
|