/linux/tools/perf/util/ |
H A D | evsel.c | 81 static int evsel__no_extra_init(struct evsel *evsel __maybe_unused) in evsel__no_extra_init() 204 static void evsel__no_extra_fini(struct evsel *evsel __maybe_unused) in evsel__no_extra_fini() 210 int (*init)(struct evsel *evsel); 211 void (*fini)(struct evsel *evsel); 213 .size = sizeof(struct evsel), 218 int evsel__object_config(size_t object_size, int (*init)(struct evsel *evsel), in evsel__object_config() argument 219 void (*fini)(struct evsel *evsel)) in evsel__object_config() argument 318 void evsel__calc_id_pos(struct evsel *evsel) in evsel__calc_id_pos() argument 320 evsel->id_pos = __perf_evsel__calc_id_pos(evsel->core.attr.sample_type); in evsel__calc_id_pos() 321 evsel->is_pos = __perf_evsel__calc_is_pos(evsel->core.attr.sample_type); in evsel__calc_id_pos() [all …]
|
H A D | bpf_counter.h | 14 struct evsel; 18 typedef int (*bpf_counter_evsel_op)(struct evsel *evsel); 19 typedef int (*bpf_counter_evsel_target_op)(struct evsel *evsel, 21 typedef int (*bpf_counter_evsel_install_pe_op)(struct evsel *evsel, 41 int bpf_counter__load(struct evsel *evsel, struct target *target); 42 int bpf_counter__enable(struct evsel *evsel); 43 int bpf_counter__disable(struct evsel *evsel); 44 int bpf_counter__read(struct evsel *evsel); 45 void bpf_counter__destroy(struct evsel *evsel); 46 int bpf_counter__install_pe(struct evsel *evsel, int cpu_map_idx, int fd); [all …]
|
H A 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() 120 evsel->supported = true; in bperf_load_program() 123 perf_cpu_map__for_each_cpu(cpu, j, evsel->core.cpus) { in bperf_load_program() 124 int fd = FD(evsel, j); in bperf_load_program() [all …]
|
H A D | record.c | 4 #include "evsel.h" 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() 41 evsel__config_term_mask(struct evsel * evsel) evsel__config_term_mask() argument 53 evsel__config_leader_sampling(struct evsel * evsel,struct evlist * evlist) evsel__config_leader_sampling() argument 97 struct evsel *evsel; evlist__config() local 224 struct evsel *evsel; evlist__can_select_event() local [all...] |
H A 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 …]
|
H A D | annotate.h | 121 struct evsel *evsel; member 204 struct evsel *evsel, 208 void symbol__calc_percent(struct symbol *sym, struct evsel *evsel); 382 const struct evsel *evsel) in annotated_source__histogram() argument 384 return &src->histograms[evsel->core.idx]; in annotated_source__histogram() 388 const struct evsel *evsel) in annotation__histogram() argument 390 return annotated_source__histogram(notes->src, evsel); in annotation__histogram() 394 annotated_source__hist_entry(struct annotated_source *src, const struct evsel *evsel, u64 offset) in annotated_source__hist_entry() argument 397 long key = offset << 16 | evsel->core.idx; in annotated_source__hist_entry() 410 struct evsel *evsel); [all …]
|
H A 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 …]
|
H A D | bpf-filter.h | 18 struct evsel; 30 int perf_bpf_filter__prepare(struct evsel *evsel, struct target *target); 31 int perf_bpf_filter__destroy(struct evsel *evsel); 32 u64 perf_bpf_filter__lost_count(struct evsel *evsel); 43 static inline int perf_bpf_filter__prepare(struct evsel *evsel __maybe_unused, in perf_bpf_filter__prepare() 48 static inline int perf_bpf_filter__destroy(struct evsel *evsel __maybe_unused) in perf_bpf_filter__destroy() 52 static inline u64 perf_bpf_filter__lost_count(struct evsel *evsel __maybe_unused) in perf_bpf_filter__lost_count()
|
H A D | counts.c | 53 void evsel__reset_counts(struct evsel *evsel) in evsel__reset_counts() argument 55 perf_counts__reset(evsel->counts); in evsel__reset_counts() 58 int evsel__alloc_counts(struct evsel *evsel) in evsel__alloc_counts() argument 60 struct perf_cpu_map *cpus = evsel__cpus(evsel); in evsel__alloc_counts() 61 int nthreads = perf_thread_map__nr(evsel->core.threads); in evsel__alloc_counts() 63 evsel->counts = perf_counts__new(perf_cpu_map__nr(cpus), nthreads); in evsel__alloc_counts() 64 return evsel->counts != NULL ? 0 : -ENOMEM; in evsel__alloc_counts() 67 void evsel__free_counts(struct evsel *evsel) in evsel__free_counts() argument 69 perf_counts__delete(evsel->counts); in evsel__free_counts() 70 evsel->counts = NULL; in evsel__free_counts()
|
H A D | kvm-stat.h | 18 struct evsel; 57 void (*get_key)(struct evsel *evsel, 64 bool (*is_begin_event)(struct evsel *evsel, 67 bool (*is_end_event)(struct evsel *evsel, 120 void exit_event_get_key(struct evsel *evsel, 123 bool exit_event_begin(struct evsel *evse [all...] |
/linux/tools/perf/arch/x86/tests/ |
H A D | hybrid.c | 10 static bool test_config(const struct evsel *evsel, __u64 expected_config) in test_config() argument 12 return (evsel->core.attr.config & PERF_HW_EVENT_MASK) == expected_config; in test_config() 15 static bool test_perf_config(const struct perf_evsel *evsel, __u64 expected_config) in test_perf_config() argument 17 return (evsel->attr.config & PERF_HW_EVENT_MASK) == expected_config; in test_perf_config() 20 static bool test_hybrid_type(const struct evsel *evsel, __u64 expected_config) in test_hybrid_type() argument 22 return (evsel->core.attr.config >> PERF_PMU_TYPE_SHIFT) == expected_config; in test_hybrid_type() 27 struct evsel *evsel = evlist__first(evlist); in test__hybrid_hw_event_with_pmu() local 30 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->core.attr.type); in test__hybrid_hw_event_with_pmu() 31 TEST_ASSERT_VAL("wrong hybrid type", test_hybrid_type(evsel, PERF_TYPE_RAW)); in test__hybrid_hw_event_with_pmu() 32 TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_HW_CPU_CYCLES)); in test__hybrid_hw_event_with_pmu() [all …]
|
/linux/tools/lib/perf/ |
H A D | evlist.c | 37 struct perf_evsel *evsel) in __perf_evlist__propagate_maps() argument 39 if (evsel->system_wide) { in __perf_evlist__propagate_maps() 41 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps() 42 evsel->cpus = perf_cpu_map__new_online_cpus(); in __perf_evlist__propagate_maps() 43 } else if (evlist->has_user_cpus && evsel->is_pmu_core) { in __perf_evlist__propagate_maps() 48 perf_cpu_map__put(evsel->cpus); in __perf_evlist__propagate_maps() 49 evsel->cpus = perf_cpu_map__intersect(evlist->user_requested_cpus, evsel->own_cpus); in __perf_evlist__propagate_maps() 55 if (perf_cpu_map__is_empty(evsel->cpus)) { in __perf_evlist__propagate_maps() 56 struct perf_evsel *next = perf_evlist__next(evlist, evsel); in __perf_evlist__propagate_maps() 58 perf_evlist__remove(evlist, evsel); in __perf_evlist__propagate_maps() [all …]
|
/linux/tools/perf/arch/x86/util/ |
H A D | kvm-stat.c | 30 static void mmio_event_get_key(struct evsel *evsel, struct perf_sample *sample, in mmio_event_get_key() argument 33 key->key = evsel__intval(evsel, sample, "gpa"); in mmio_event_get_key() 34 key->info = evsel__intval(evsel, sample, "type"); in mmio_event_get_key() 41 static bool mmio_event_begin(struct evsel *evsel, in mmio_event_begin() argument 45 if (kvm_exit_event(evsel)) in mmio_event_begin() 49 if (evsel__name_is(evsel, "kvm:kvm_mmio") && in mmio_event_begin() 50 evsel__intval(evsel, sample, "type") == KVM_TRACE_MMIO_WRITE) { in mmio_event_begin() 51 mmio_event_get_key(evsel, sample, key); in mmio_event_begin() 58 static bool mmio_event_end(struct evsel *evsel, struct perf_sample *sample, in mmio_event_end() argument 62 if (kvm_entry_event(evsel)) in mmio_event_end() [all …]
|
/linux/tools/lib/perf/tests/ |
H A 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 …]
|
H A 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/tools/lib/perf/include/perf/ |
H A 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 …]
|
/linux/tools/lib/perf/include/internal/ |
H A D | evlist.h | 70 #define __perf_evlist__for_each_entry(list, evsel) \ argument 71 list_for_each_entry(evsel, list, node) 78 #define perf_evlist__for_each_entry(evlist, evsel) \ argument 79 __perf_evlist__for_each_entry(&(evlist)->entries, evsel) 86 #define __perf_evlist__for_each_entry_reverse(list, evsel) \ argument 87 list_for_each_entry_reverse(evsel, list, node) 94 #define perf_evlist__for_each_entry_reverse(evlist, evsel) \ argument 95 __perf_evlist__for_each_entry_reverse(&(evlist)->entries, evsel) 103 #define __perf_evlist__for_each_entry_safe(list, tmp, evsel) \ argument 104 list_for_each_entry_safe(evsel, tmp, list, node) [all …]
|
/linux/tools/perf/tests/ |
H A D | mmap-basic.c | 45 struct evsel *evsels[nsyscalls], *evsel; in test__basic_mmap() local 140 evsel = evlist__id2evsel(evlist, sample.id); in test__basic_mmap() 141 if (evsel == NULL) { in test__basic_mmap() 146 nr_events[evsel->core.idx]++; in test__basic_mmap() 153 evlist__for_each_entry(evlist, evsel) { in test__basic_mmap() 154 if (nr_events[evsel->core.idx] != expected_nr_events[evsel->core.idx]) { in test__basic_mmap() 156 expected_nr_events[evsel->core.idx], in test__basic_mmap() 157 evsel__name(evsel), nr_events[evsel->core.idx]); in test__basic_mmap() 176 struct perf_evsel *evsel; in test_stat_user_read() local 193 evsel = perf_evsel__new(&attr); in test_stat_user_read() [all …]
|
H A D | event_update.c | 82 struct evsel *evsel; in test__event_update() local 88 evsel = evlist__first(evlist); in test__event_update() 91 !perf_evsel__alloc_id(&evsel->core, 1, 1)); in test__event_update() 93 perf_evlist__id_add(&evlist->core, &evsel->core, 0, 0, 123); in test__event_update() 95 free((char *)evsel->unit); in test__event_update() 96 evsel->unit = strdup("KRAVA"); in test__event_update() 99 !perf_event__synthesize_event_update_unit(NULL, evsel, process_event_unit)); in test__event_update() 101 evsel->scale = 0.123; in test__event_update() 104 !perf_event__synthesize_event_update_scale(NULL, evsel, process_event_scale)); in test__event_update() 107 tmp.name = evsel__name(evsel); in test__event_update() [all …]
|
H A D | openat-syscall-all-cpus.c | 28 struct evsel *evsel; in test__openat_syscall_event_on_all_cpus() local 48 evsel = evsel__newtp("syscalls", "sys_enter_openat"); in test__openat_syscall_event_on_all_cpus() 49 if (IS_ERR(evsel)) { in test__openat_syscall_event_on_all_cpus() 56 if (evsel__open(evsel, cpus, threads) < 0) { in test__openat_syscall_event_on_all_cpus() 91 evsel->core.cpus = perf_cpu_map__get(cpus); in test__openat_syscall_event_on_all_cpus() 101 if (evsel__read_on_cpu(evsel, idx, 0) < 0) { in test__openat_syscall_event_on_all_cpus() 108 if (perf_counts(evsel->counts, idx, 0)->val != expected) { in test__openat_syscall_event_on_all_cpus() 110 expected, cpu.cpu, perf_counts(evsel->counts, idx, 0)->val); in test__openat_syscall_event_on_all_cpus() 115 evsel__free_counts(evsel); in test__openat_syscall_event_on_all_cpus() 117 perf_evsel__close_fd(&evsel->core); in test__openat_syscall_event_on_all_cpus() [all …]
|
H A D | openat-syscall.c | 21 struct evsel *evsel; in test__openat_syscall_event() local 32 evsel = evsel__newtp("syscalls", "sys_enter_openat"); in test__openat_syscall_event() 33 if (IS_ERR(evsel)) { in test__openat_syscall_event() 40 if (evsel__open_per_thread(evsel, threads) < 0) { in test__openat_syscall_event() 53 if (evsel__read_on_cpu(evsel, 0, 0) < 0) { in test__openat_syscall_event() 58 if (perf_counts(evsel->counts, 0, 0)->val != nr_openat_calls) { in test__openat_syscall_event() 60 nr_openat_calls, perf_counts(evsel->counts, 0, 0)->val); in test__openat_syscall_event() 66 perf_evsel__close_fd(&evsel->core); in test__openat_syscall_event() 68 evsel__delete(evsel); in test__openat_syscall_event()
|
/linux/tools/perf/ |
H A D | builtin-trace.c | 148 struct evsel *sys_enter, 352 static inline struct syscall_tp *__evsel__syscall_tp(struct evsel *evsel) in __evsel__syscall_tp() argument 354 struct evsel_trace *et = evsel->priv; in __evsel__syscall_tp() 359 static struct syscall_tp *evsel__syscall_tp(struct evsel *evsel) in evsel__syscall_tp() argument 361 if (evsel->priv == NULL) { in evsel__syscall_tp() 362 evsel->priv = evsel_trace__new(); in evsel__syscall_tp() 363 if (evsel->priv == NULL) in evsel__syscall_tp() 367 return __evsel__syscall_tp(evsel); in evsel__syscall_tp() 373 static inline struct syscall_arg_fmt *__evsel__syscall_arg_fmt(struct evsel *evsel) in __evsel__syscall_arg_fmt() argument 375 struct evsel_trace *et = evsel->priv; in __evsel__syscall_arg_fmt() [all …]
|
/linux/tools/perf/arch/arm64/util/ |
H A D | kvm-stat.c | 24 static void event_get_key(struct evsel *evsel, in event_get_key() argument 29 key->key = evsel__intval(evsel, sample, kvm_exit_reason); in event_get_key() 38 key->key = evsel__intval(evsel, sample, kvm_trap_exit_reason); in event_get_key() 43 static bool event_begin(struct evsel *evsel, in event_begin() argument 47 return evsel__name_is(evsel, kvm_entry_trace); in event_begin() 50 static bool event_end(struct evsel *evsel, in event_end() argument 54 if (evsel__name_is(evsel, kvm_exit_trace)) { in event_end() 55 event_get_key(evsel, sample, key); in event_end()
|
/linux/tools/perf/arch/s390/util/ |
H A D | kvm-stat.c | 26 static void event_icpt_insn_get_key(struct evsel *evsel, in event_icpt_insn_get_key() argument 32 insn = evsel__intval(evsel, sample, "instruction"); in event_icpt_insn_get_key() 37 static void event_sigp_get_key(struct evsel *evsel, in event_sigp_get_key() argument 41 key->key = evsel__intval(evsel, sample, "order_code"); in event_sigp_get_key() 45 static void event_diag_get_key(struct evsel *evsel, in event_diag_get_key() argument 49 key->key = evsel__intval(evsel, sample, "code"); in event_diag_get_key() 53 static void event_icpt_prog_get_key(struct evsel *evsel, in event_icpt_prog_get_key() argument 57 key->key = evsel__intval(evsel, sample, "code"); in event_icpt_prog_get_key()
|
/linux/tools/perf/arch/riscv/util/ |
H A D | kvm-stat.c | 28 static void event_get_key(struct evsel *evsel, in event_get_key() argument 33 key->key = evsel__intval(evsel, sample, kvm_exit_reason); in event_get_key() 37 static bool event_begin(struct evsel *evsel, in event_begin() argument 41 return evsel__name_is(evsel, kvm_entry_trace); in event_begin() 44 static bool event_end(struct evsel *evsel, in event_end() argument 48 if (evsel__name_is(evsel, kvm_exit_trace)) { in event_end() 49 event_get_key(evsel, sample, key); in event_end()
|