Lines Matching refs:attr
183 evsel->id_pos = __perf_evsel__calc_id_pos(evsel->core.attr.sample_type); in perf_evsel__calc_id_pos()
184 evsel->is_pos = __perf_evsel__calc_is_pos(evsel->core.attr.sample_type); in perf_evsel__calc_id_pos()
190 if (!(evsel->core.attr.sample_type & bit)) { in __perf_evsel__set_sample_bit()
191 evsel->core.attr.sample_type |= bit; in __perf_evsel__set_sample_bit()
200 if (evsel->core.attr.sample_type & bit) { in __perf_evsel__reset_sample_bit()
201 evsel->core.attr.sample_type &= ~bit; in __perf_evsel__reset_sample_bit()
216 evsel->core.attr.read_format |= PERF_FORMAT_ID; in perf_evsel__set_sample_id()
238 struct perf_event_attr *attr, int idx) in evsel__init() argument
240 perf_evsel__init(&evsel->core, attr); in evsel__init()
252 evsel->sample_size = __perf_evsel__sample_size(attr->sample_type); in evsel__init()
262 struct evsel *perf_evsel__new_idx(struct perf_event_attr *attr, int idx) in perf_evsel__new_idx() argument
268 evsel__init(evsel, attr, idx); in perf_evsel__new_idx()
271 evsel->core.attr.sample_type |= (PERF_SAMPLE_RAW | PERF_SAMPLE_TIME | in perf_evsel__new_idx()
273 evsel->core.attr.sample_period = 1; in perf_evsel__new_idx()
297 struct perf_event_attr attr = { in perf_evsel__new_cycles() local
304 event_attr_init(&attr); in perf_evsel__new_cycles()
314 evsel = evsel__new(&attr); in perf_evsel__new_cycles()
322 (attr.precise_ip || attr.exclude_kernel) ? ":" : "", in perf_evsel__new_cycles()
323 attr.exclude_kernel ? "u" : "", in perf_evsel__new_cycles()
324 attr.precise_ip ? attr.precise_ip + 1 : 0, "ppp") < 0) in perf_evsel__new_cycles()
345 struct perf_event_attr attr = { in perf_evsel__newtp_idx() local
360 event_attr_init(&attr); in perf_evsel__newtp_idx()
361 attr.config = evsel->tp_format->id; in perf_evsel__newtp_idx()
362 attr.sample_period = 1; in perf_evsel__newtp_idx()
363 evsel__init(evsel, &attr, idx); in perf_evsel__newtp_idx()
399 struct perf_event_attr *attr = &evsel->core.attr; in perf_evsel__add_modifiers() local
403 if (!attr->exclude_##context) { \ in perf_evsel__add_modifiers()
408 if (attr->exclude_kernel || attr->exclude_user || attr->exclude_hv) { in perf_evsel__add_modifiers()
415 if (attr->precise_ip) { in perf_evsel__add_modifiers()
418 r += scnprintf(bf + r, size - r, "%.*s", attr->precise_ip, "ppp"); in perf_evsel__add_modifiers()
422 if (attr->exclude_host || attr->exclude_guest == exclude_guest_default) { in perf_evsel__add_modifiers()
434 int r = scnprintf(bf, size, "%s", __perf_evsel__hw_name(evsel->core.attr.config)); in perf_evsel__hw_name()
460 int r = scnprintf(bf, size, "%s", __perf_evsel__sw_name(evsel->core.attr.config)); in perf_evsel__sw_name()
484 struct perf_event_attr *attr = &evsel->core.attr; in perf_evsel__bp_name() local
485 int r = __perf_evsel__bp_name(bf, size, attr->bp_addr, attr->bp_type); in perf_evsel__bp_name()
584 int ret = __perf_evsel__hw_cache_name(evsel->core.attr.config, bf, size); in perf_evsel__hw_cache_name()
590 int ret = scnprintf(bf, size, "raw 0x%" PRIx64, evsel->core.attr.config); in perf_evsel__raw_name()
610 switch (evsel->core.attr.type) { in perf_evsel__name()
640 evsel->core.attr.type); in perf_evsel__name()
694 struct perf_event_attr *attr = &evsel->core.attr; in __perf_evsel__config_callchain() local
698 attr->sample_max_stack = param->max_stack; in __perf_evsel__config_callchain()
701 attr->exclude_callchain_user = 1; in __perf_evsel__config_callchain()
703 attr->exclude_callchain_kernel = 1; in __perf_evsel__config_callchain()
706 if (attr->exclude_user) { in __perf_evsel__config_callchain()
712 attr->branch_sample_type = PERF_SAMPLE_BRANCH_USER | in __perf_evsel__config_callchain()
727 attr->sample_regs_user |= DWARF_MINIMAL_REGS; in __perf_evsel__config_callchain()
732 attr->sample_regs_user |= PERF_REGS_MASK; in __perf_evsel__config_callchain()
734 attr->sample_stack_user = param->dump_size; in __perf_evsel__config_callchain()
735 attr->exclude_callchain_user = 1; in __perf_evsel__config_callchain()
744 attr->exclude_callchain_user = 1; in __perf_evsel__config_callchain()
760 struct perf_event_attr *attr = &evsel->core.attr; in perf_evsel__reset_callgraph() local
765 attr->branch_sample_type &= ~(PERF_SAMPLE_BRANCH_USER | in perf_evsel__reset_callgraph()
779 struct perf_event_attr *attr = &evsel->core.attr; in apply_config_terms() local
792 attr->sample_period = term->val.period; in apply_config_terms()
793 attr->freq = 0; in apply_config_terms()
799 attr->sample_freq = term->val.freq; in apply_config_terms()
800 attr->freq = 1; in apply_config_terms()
817 &attr->branch_sample_type); in apply_config_terms()
837 attr->inherit = term->val.inherit ? 1 : 0; in apply_config_terms()
840 attr->write_backward = term->val.overwrite ? 1 : 0; in apply_config_terms()
847 attr->aux_output = term->val.aux_output ? 1 : 0; in apply_config_terms()
895 evsel->core.attr.mmap_data = track; in apply_config_terms()
904 return (evsel->core.attr.type == PERF_TYPE_SOFTWARE) && in is_dummy_event()
905 (evsel->core.attr.config == PERF_COUNT_SW_DUMMY); in is_dummy_event()
940 struct perf_event_attr *attr = &evsel->core.attr; in perf_evsel__config() local
944 attr->sample_id_all = perf_missing_features.sample_id_all ? 0 : 1; in perf_evsel__config()
945 attr->inherit = !opts->no_inherit; in perf_evsel__config()
946 attr->write_backward = opts->overwrite ? 1 : 0; in perf_evsel__config()
965 attr->read_format |= PERF_FORMAT_GROUP; in perf_evsel__config()
966 attr->inherit = 0; in perf_evsel__config()
974 if (!attr->sample_period || (opts->user_freq != UINT_MAX || in perf_evsel__config()
978 attr->freq = 1; in perf_evsel__config()
979 attr->sample_freq = opts->freq; in perf_evsel__config()
981 attr->sample_period = opts->default_interval; in perf_evsel__config()
990 attr->freq = 0; in perf_evsel__config()
991 attr->sample_freq = 0; in perf_evsel__config()
992 attr->sample_period = 0; in perf_evsel__config()
993 attr->write_backward = 0; in perf_evsel__config()
1001 attr->sample_type = leader->core.attr.sample_type; in perf_evsel__config()
1005 attr->sample_freq = 0; in perf_evsel__config()
1008 evsel->core.attr.read_format |= in perf_evsel__config()
1012 attr->inherit_stat = 1; in perf_evsel__config()
1017 attr->mmap_data = track; in perf_evsel__config()
1026 evsel->core.attr.exclude_callchain_user = 1; in perf_evsel__config()
1032 attr->sample_regs_intr = opts->sample_intr_regs; in perf_evsel__config()
1037 attr->sample_regs_user |= opts->sample_user_regs; in perf_evsel__config()
1066 attr->watermark = 0; in perf_evsel__config()
1067 attr->wakeup_events = 1; in perf_evsel__config()
1071 attr->branch_sample_type = opts->branch_stack; in perf_evsel__config()
1077 attr->task = track; in perf_evsel__config()
1078 attr->mmap = track; in perf_evsel__config()
1079 attr->mmap2 = track && !perf_missing_features.mmap2; in perf_evsel__config()
1080 attr->comm = track; in perf_evsel__config()
1081 attr->ksymbol = track && !perf_missing_features.ksymbol; in perf_evsel__config()
1082 attr->bpf_event = track && !opts->no_bpf_event && !perf_missing_features.bpf; in perf_evsel__config()
1085 attr->namespaces = track; in perf_evsel__config()
1088 attr->context_switch = track; in perf_evsel__config()
1094 evsel->core.attr.read_format |= in perf_evsel__config()
1106 attr->disabled = 1; in perf_evsel__config()
1114 attr->enable_on_exec = 1; in perf_evsel__config()
1117 attr->disabled = 0; in perf_evsel__config()
1118 attr->enable_on_exec = 0; in perf_evsel__config()
1123 attr->use_clockid = 1; in perf_evsel__config()
1124 attr->clockid = opts->clockid; in perf_evsel__config()
1128 attr->precise_ip = 3; in perf_evsel__config()
1131 attr->exclude_kernel = 1; in perf_evsel__config()
1132 attr->exclude_user = 0; in perf_evsel__config()
1136 attr->exclude_kernel = 0; in perf_evsel__config()
1137 attr->exclude_user = 1; in perf_evsel__config()
1141 evsel->core.attr.read_format |= PERF_FORMAT_ID; in perf_evsel__config()
1333 u64 read_format = leader->core.attr.read_format; in perf_evsel__process_group_data()
1371 u64 read_format = leader->core.attr.read_format; in perf_evsel__read_group()
1400 u64 read_format = evsel->core.attr.read_format; in perf_evsel__read_counter()
1525 static void display_attr(struct perf_event_attr *attr) in display_attr() argument
1530 perf_event_attr__fprintf(stderr, attr, __open_attr__fprintf, NULL); in display_attr()
1539 int precise_ip = evsel->core.attr.precise_ip; in perf_event_open()
1546 fd = sys_perf_event_open(&evsel->core.attr, pid, cpu, group_fd, flags); in perf_event_open()
1558 if (!evsel->core.attr.precise_ip) { in perf_event_open()
1559 evsel->core.attr.precise_ip = precise_ip; in perf_event_open()
1564 evsel->core.attr.precise_ip--; in perf_event_open()
1565 pr_debug2("decreasing precise_ip by one (%d)\n", evsel->core.attr.precise_ip); in perf_event_open()
1566 display_attr(&evsel->core.attr); in perf_event_open()
1580 if ((perf_missing_features.write_backward && evsel->core.attr.write_backward) || in evsel__open()
1581 (perf_missing_features.aux_output && evsel->core.attr.aux_output)) in evsel__open()
1624 evsel->core.attr.clockid = CLOCK_MONOTONIC; /* should always work */ in evsel__open()
1626 evsel->core.attr.use_clockid = 0; in evsel__open()
1627 evsel->core.attr.clockid = 0; in evsel__open()
1632 evsel->core.attr.mmap2 = 0; in evsel__open()
1634 evsel->core.attr.exclude_guest = evsel->core.attr.exclude_host = 0; in evsel__open()
1636 evsel->core.attr.branch_sample_type &= ~(PERF_SAMPLE_BRANCH_NO_FLAGS | in evsel__open()
1638 if (perf_missing_features.group_read && evsel->core.attr.inherit) in evsel__open()
1639 evsel->core.attr.read_format &= ~(PERF_FORMAT_GROUP|PERF_FORMAT_ID); in evsel__open()
1641 evsel->core.attr.ksymbol = 0; in evsel__open()
1643 evsel->core.attr.bpf_event = 0; in evsel__open()
1646 evsel->core.attr.sample_id_all = 0; in evsel__open()
1648 display_attr(&evsel->core.attr); in evsel__open()
1755 if (!perf_missing_features.aux_output && evsel->core.attr.aux_output) { in evsel__open()
1759 } else if (!perf_missing_features.bpf && evsel->core.attr.bpf_event) { in evsel__open()
1763 } else if (!perf_missing_features.ksymbol && evsel->core.attr.ksymbol) { in evsel__open()
1767 } else if (!perf_missing_features.write_backward && evsel->core.attr.write_backward) { in evsel__open()
1771 } else if (!perf_missing_features.clockid_wrong && evsel->core.attr.use_clockid) { in evsel__open()
1775 } else if (!perf_missing_features.clockid && evsel->core.attr.use_clockid) { in evsel__open()
1783 } else if (!perf_missing_features.mmap2 && evsel->core.attr.mmap2) { in evsel__open()
1788 (evsel->core.attr.exclude_guest || evsel->core.attr.exclude_host)) { in evsel__open()
1797 (evsel->core.attr.branch_sample_type & in evsel__open()
1804 evsel->core.attr.inherit && in evsel__open()
1805 (evsel->core.attr.read_format & PERF_FORMAT_GROUP) && in evsel__open()
1847 u64 type = evsel->core.attr.sample_type; in perf_evsel__parse_id_sample()
1936 u64 type = evsel->core.attr.sample_type; in perf_evsel__parse_sample()
1952 data->period = evsel->core.attr.sample_period; in perf_evsel__parse_sample()
1959 if (!evsel->core.attr.sample_id_all) in perf_evsel__parse_sample()
2032 u64 read_format = evsel->core.attr.read_format; in perf_evsel__parse_sample()
2137 u64 mask = evsel->core.attr.sample_regs_user; in perf_evsel__parse_sample()
2193 u64 mask = evsel->core.attr.sample_regs_intr; in perf_evsel__parse_sample()
2216 u64 type = evsel->core.attr.sample_type; in perf_evsel__parse_sample_timestamp()
2227 if (!evsel->core.attr.sample_id_all) in perf_evsel__parse_sample_timestamp()
2336 evsel->core.attr.type == PERF_TYPE_HARDWARE && in perf_evsel__fallback()
2337 evsel->core.attr.config == PERF_COUNT_HW_CPU_CYCLES) { in perf_evsel__fallback()
2349 evsel->core.attr.type = PERF_TYPE_SOFTWARE; in perf_evsel__fallback()
2350 evsel->core.attr.config = PERF_COUNT_SW_CPU_CLOCK; in perf_evsel__fallback()
2354 } else if (err == EACCES && !evsel->core.attr.exclude_kernel && in perf_evsel__fallback()
2374 evsel->core.attr.exclude_kernel = 1; in perf_evsel__fallback()
2375 evsel->core.attr.exclude_hv = 1; in perf_evsel__fallback()
2472 if (evsel->core.attr.sample_period != 0) in perf_evsel__open_strerror()
2476 if (evsel->core.attr.precise_ip) in perf_evsel__open_strerror()
2480 if (evsel->core.attr.type == PERF_TYPE_HARDWARE) in perf_evsel__open_strerror()
2492 if (evsel->core.attr.write_backward && perf_missing_features.write_backward) in perf_evsel__open_strerror()