Lines Matching refs:attr
1028 struct perf_event_attr *attr, in perf_cgroup_connect() argument
1133 struct perf_event_attr *attr, in perf_cgroup_connect() argument
1621 event_type = event->attr.pinned ? EVENT_PINNED : EVENT_FLEXIBLE; in get_event_type()
1644 if (event->attr.pinned) in get_event_groups()
1872 static inline bool has_inherit_and_sample_read(struct perf_event_attr *attr) in has_inherit_and_sample_read() argument
1874 return attr->inherit && (attr->sample_type & PERF_SAMPLE_READ); in has_inherit_and_sample_read()
1905 if (event->attr.inherit_stat) in list_add_event()
1907 if (has_inherit_and_sample_read(&event->attr)) in list_add_event()
1922 event->state = event->attr.disabled ? PERF_EVENT_STATE_OFF : in perf_event__state_init()
2004 __perf_event_read_size(event->attr.read_format, in perf_event__header_size()
2006 __perf_event_header_size(event, event->attr.sample_type); in perf_event__header_size()
2012 u64 sample_type = event->attr.sample_type; in perf_event__id_header_size()
2051 if (__perf_event_read_size(event->attr.read_format, in perf_event_validate_size()
2055 if (__perf_event_read_size(group_leader->attr.read_format, in perf_event_validate_size()
2070 if (__perf_event_read_size(sibling->attr.read_format, in perf_event_validate_size()
2131 if (event->attr.inherit_stat) in list_del_event()
2133 if (has_inherit_and_sample_read(&event->attr)) in list_del_event()
2199 return event->attr.aux_output || has_aux_action(event); in perf_need_aux_event()
2217 if (event->attr.aux_output && event->attr.aux_sample_size) in perf_get_aux_event()
2220 if (event->attr.aux_output && in perf_get_aux_event()
2224 if ((event->attr.aux_pause || event->attr.aux_resume) && in perf_get_aux_event()
2228 if (event->attr.aux_sample_size && !group_leader->pmu->snapshot_aux) in perf_get_aux_event()
2247 return event->attr.pinned ? &event->pmu_ctx->pinned_active : in get_event_list()
2357 return event->attr.freq && event->attr.sample_freq; in is_event_in_freq_mode()
2401 if (event->attr.exclusive || !cpc->active_oncpu) in event_sched_out()
2749 if (event->attr.exclusive) in event_sched_in()
2827 if (event->attr.exclusive && !list_empty(get_event_list(event))) in group_can_go_on()
3334 if (event->attr.inherit || !is_sampling_event(event)) in _perf_event_refresh()
3360 struct perf_event_attr *attr) in perf_event_modify_breakpoint() argument
3366 err = modify_user_hw_breakpoint_check(bp, attr, true); in perf_event_modify_breakpoint()
3368 if (!bp->attr.disabled) in perf_event_modify_breakpoint()
3384 struct perf_event_attr *attr) in perf_event_modify_attr() argument
3390 if (event->attr.type != attr->type) in perf_event_modify_attr()
3393 switch (event->attr.type) { in perf_event_modify_attr()
3410 perf_event_modify_copy_attr(&event->attr, attr); in perf_event_modify_attr()
3411 err = func(event, attr); in perf_event_modify_attr()
3415 perf_event_modify_copy_attr(&child->attr, attr); in perf_event_modify_attr()
3416 err = func(child, attr); in perf_event_modify_attr()
3581 if (!event->attr.inherit_stat) in __perf_event_sync_stat()
4009 if (event->attr.pinned) { in merge_sched_in()
4184 u64 frequency = event->attr.sample_freq; in perf_calculate_period()
4524 if (!event->attr.enable_on_exec) in event_enable_on_exec()
4527 event->attr.enable_on_exec = 0; in event_enable_on_exec()
4603 if (!event->attr.remove_on_exec) in perf_event_remove_on_exec()
4756 if (event->attr.inherit) { in perf_event_read_local()
4783 if (event->attr.pinned && event_oncpu != smp_processor_id()) { in perf_event_read_local()
5179 struct perf_event_attr *attr = &event->attr; in is_sb_event() local
5187 if (attr->mmap || attr->mmap_data || attr->mmap2 || in is_sb_event()
5188 attr->comm || attr->comm_exec || in is_sb_event()
5189 attr->task || attr->ksymbol || in is_sb_event()
5190 attr->context_switch || attr->text_poke || in is_sb_event()
5191 attr->bpf_event) in is_sb_event()
5453 if (event->attr.mmap || event->attr.mmap_data) in unaccount_event()
5455 if (event->attr.build_id) in unaccount_event()
5457 if (event->attr.comm) in unaccount_event()
5459 if (event->attr.namespaces) in unaccount_event()
5461 if (event->attr.cgroup) in unaccount_event()
5463 if (event->attr.task) in unaccount_event()
5465 if (event->attr.freq) in unaccount_event()
5467 if (event->attr.context_switch) { in unaccount_event()
5475 if (event->attr.ksymbol) in unaccount_event()
5477 if (event->attr.bpf_event) in unaccount_event()
5479 if (event->attr.text_poke) in unaccount_event()
6079 u64 read_format = event->attr.read_format; in __perf_read()
6138 event->attr.pinned)) in perf_poll()
6167 WARN_ON_ONCE(event->attr.inherit); in perf_event_pause()
6221 if (event->attr.freq) { in __perf_event_period()
6222 event->attr.sample_freq = value; in __perf_event_period()
6224 event->attr.sample_period = value; in __perf_event_period()
6263 if (event->attr.freq) { in _perf_event_period()
6302 struct perf_event_attr *attr);
6949 if (event->cpu == -1 && event->attr.inherit) in perf_mmap()
7109 event->attr.watermark ? event->attr.wakeup_watermark : 0, in perf_mmap()
7129 event->attr.aux_watermark, flags); in perf_mmap()
7242 event->orig_type, event->attr.sig_data); in perf_sigtrap()
7394 return !event->attr.exclude_guest && perf_guest_state(); in should_sample_guest()
7680 data->type = event->attr.sample_type; in __perf_event_header__init_id()
7708 if (event->attr.sample_id_all) { in perf_event_header__init_id()
7710 __perf_event_header__init_id(data, event, event->attr.sample_type); in perf_event_header__init_id()
7742 if (event->attr.sample_id_all) in perf_event__output_id_sample()
7750 u64 read_format = event->attr.read_format; in perf_output_read_one()
7754 values[n++] = perf_event_count(event, has_inherit_and_sample_read(&event->attr)); in perf_output_read_one()
7776 u64 read_format = event->attr.read_format; in perf_output_read_group()
7780 bool self = has_inherit_and_sample_read(&event->attr); in perf_output_read_group()
7843 u64 read_format = event->attr.read_format; in perf_output_read()
7857 if (event->attr.read_format & PERF_FORMAT_GROUP) in perf_output_read()
7984 u64 mask = event->attr.sample_regs_user; in perf_output_sample()
8015 u64 mask = event->attr.sample_regs_intr; in perf_output_sample()
8042 if (!event->attr.watermark) { in perf_output_sample()
8043 int wakeup_events = event->attr.wakeup_events; in perf_output_sample()
8188 bool kernel = !event->attr.exclude_callchain_kernel; in perf_callchain()
8189 bool user = !event->attr.exclude_callchain_user; in perf_callchain()
8192 const u32 max_stack = event->attr.sample_max_stack; in perf_callchain()
8215 u64 sample_type = event->attr.sample_type; in perf_prepare_sample()
8233 data->type = event->attr.sample_type; in perf_prepare_sample()
8272 u64 mask = event->attr.sample_regs_user; in perf_prepare_sample()
8287 u16 stack_size = event->attr.sample_stack_user; in perf_prepare_sample()
8334 u64 mask = event->attr.sample_regs_intr; in perf_prepare_sample()
8387 event->attr.aux_sample_size); in perf_prepare_sample()
8789 return event->attr.comm || event->attr.mmap || in perf_event_task_match()
8790 event->attr.mmap2 || event->attr.mmap_data || in perf_event_task_match()
8791 event->attr.task; in perf_event_task_match()
8943 return event->attr.comm; in perf_event_comm_match()
9042 return event->attr.namespaces; in perf_event_namespaces_match()
9170 return event->attr.cgroup; in perf_event_cgroup_match()
9286 return (!executable && event->attr.mmap_data) || in perf_event_mmap_match()
9287 (executable && (event->attr.mmap || event->attr.mmap2)); in perf_event_mmap_match()
9304 if (event->attr.mmap2) { in perf_event_mmap_output()
9323 use_build_id = event->attr.build_id && mmap_event->build_id_size; in perf_event_mmap_output()
9325 if (event->attr.mmap2 && use_build_id) in perf_event_mmap_output()
9330 if (event->attr.mmap2) { in perf_event_mmap_output()
9681 return event->attr.context_switch; in perf_event_switch_match()
9811 return event->attr.ksymbol; in perf_event_ksymbol_match()
9901 return event->attr.bpf_event; in perf_event_bpf_match()
10003 return event->attr.text_poke; in perf_event_text_poke_match()
10165 if (event->attr.freq) { in __perf_event_account_interrupt()
10190 if (event->attr.exclude_kernel && !user_mode(regs)) in sample_is_allowed()
10238 if (event->attr.precise_ip && in perf_event_set_bpf_handler()
10240 (!(event->attr.sample_type & PERF_SAMPLE_CALLCHAIN) || in perf_event_set_bpf_handler()
10241 event->attr.exclude_callchain_kernel || in perf_event_set_bpf_handler()
10242 event->attr.exclude_callchain_user)) { in perf_event_set_bpf_handler()
10310 if (event->attr.aux_pause) in __perf_event_overflow()
10329 if (event->attr.sigtrap) { in __perf_event_overflow()
10355 } else if (event->attr.exclude_kernel && valid_sample) { in __perf_event_overflow()
10379 if (event->attr.aux_resume) in __perf_event_overflow()
10473 if ((event->attr.sample_type & PERF_SAMPLE_PERIOD) && !event->attr.freq) { in perf_swevent_event()
10479 if (nr == 1 && hwc->sample_period == 1 && !event->attr.freq) in perf_swevent_event()
10494 if (event->attr.exclude_user && user_mode(regs)) in perf_exclude_event()
10497 if (event->attr.exclude_kernel && !user_mode(regs)) in perf_exclude_event()
10510 if (event->attr.type != type) in perf_swevent_match()
10513 if (event->attr.config != event_id) in perf_swevent_match()
10555 u32 event_id = event->attr.config; in find_swevent_head()
10556 u64 type = event->attr.type; in find_swevent_head()
10766 u64 event_id = event->attr.config; in sw_perf_event_destroy()
10779 u64 event_id = event->attr.config; in perf_swevent_init()
10781 if (event->attr.type != PERF_TYPE_SOFTWARE) in perf_swevent_init()
10792 event->attr.type = perf_cpu_clock.type; in perf_swevent_init()
10795 event->attr.type = perf_task_clock.type; in perf_swevent_init()
10843 if (event->attr.type != PERF_TYPE_TRACEPOINT) in perf_tp_event_init()
10895 if (event->attr.exclude_kernel && !user_mode(regs)) in perf_tp_event_match()
10929 if (event->attr.config != entry->type) in __perf_tp_event_target_task()
10932 if (event->attr.sigtrap) in __perf_tp_event_target_task()
11045 &format_attr_retprobe.attr,
11076 if (event->attr.type != perf_kprobe.type) in perf_kprobe_event_init()
11088 is_retprobe = event->attr.config & PERF_PROBE_CONFIG_IS_RETPROBE; in perf_kprobe_event_init()
11103 &format_attr_retprobe.attr,
11104 &format_attr_ref_ctr_offset.attr,
11136 if (event->attr.type != perf_uprobe.type) in perf_uprobe_event_init()
11148 is_retprobe = event->attr.config & PERF_PROBE_CONFIG_IS_RETPROBE; in perf_uprobe_event_init()
11149 ref_ctr_offset = event->attr.config >> PERF_UPROBE_REF_CTR_OFFSET_SHIFT; in perf_uprobe_event_init()
11299 perf_sample_data_init(&sample, bp->attr.bp_addr, 0); in perf_bp_event()
11727 ret = ftrace_profile_set_filter(event, event->attr.config, filter_str); in perf_event_set_filter()
11761 if (!(event->attr.exclude_idle && is_idle_task(current))) in perf_swevent_hrtimer()
11823 if (event->attr.freq) { in perf_swevent_init_hrtimer()
11824 long freq = event->attr.sample_freq; in perf_swevent_init_hrtimer()
11826 event->attr.sample_period = NSEC_PER_SEC / freq; in perf_swevent_init_hrtimer()
11827 hwc->sample_period = event->attr.sample_period; in perf_swevent_init_hrtimer()
11830 event->attr.freq = 0; in perf_swevent_init_hrtimer()
11882 if (event->attr.type != perf_cpu_clock.type) in cpu_clock_event_init()
11885 if (event->attr.config != PERF_COUNT_SW_CPU_CLOCK) in cpu_clock_event_init()
11965 if (event->attr.type != perf_task_clock.type) in task_clock_event_init()
11968 if (event->attr.config != PERF_COUNT_SW_TASK_CLOCK) in task_clock_event_init()
12060 struct device_attribute *attr, in nr_addr_filters_show() argument
12072 type_show(struct device *dev, struct device_attribute *attr, char *page) in type_show() argument
12082 struct device_attribute *attr, in perf_event_mux_interval_ms_show() argument
12094 struct device_attribute *attr, in perf_event_mux_interval_ms_store() argument
12166 static ssize_t cpumask_show(struct device *dev, struct device_attribute *attr, in cpumask_show() argument
12180 &dev_attr_type.attr,
12181 &dev_attr_perf_event_mux_interval_ms.attr,
12182 &dev_attr_nr_addr_filters.attr,
12183 &dev_attr_cpumask.attr,
12552 return (event->attr.sample_regs_user & PERF_REG_EXTENDED_MASK) || in has_extended_regs()
12553 (event->attr.sample_regs_intr & PERF_REG_EXTENDED_MASK); in has_extended_regs()
12646 event->orig_type = event->attr.type; in perf_init_event()
12660 type = event->attr.type; in perf_init_event()
12662 type = event->attr.config >> PERF_PMU_TYPE_SHIFT; in perf_init_event()
12667 event->attr.config &= PERF_HW_EVENT_MASK; in perf_init_event()
12675 if (event->attr.type != type && type != PERF_TYPE_RAW && in perf_init_event()
12680 if (ret == -ENOENT && event->attr.type != type && !extended_type) { in perf_init_event()
12681 type = event->attr.type; in perf_init_event()
12755 if (event->attr.mmap || event->attr.mmap_data) in account_event()
12757 if (event->attr.build_id) in account_event()
12759 if (event->attr.comm) in account_event()
12761 if (event->attr.namespaces) in account_event()
12763 if (event->attr.cgroup) in account_event()
12765 if (event->attr.task) in account_event()
12767 if (event->attr.freq) in account_event()
12769 if (event->attr.context_switch) { in account_event()
12777 if (event->attr.ksymbol) in account_event()
12779 if (event->attr.bpf_event) in account_event()
12781 if (event->attr.text_poke) in account_event()
12819 perf_event_alloc(struct perf_event_attr *attr, int cpu, in perf_event_alloc() argument
12835 if (attr->sigtrap && !task) { in perf_event_alloc()
12877 event->attr = *attr; in perf_event_alloc()
12935 hwc->sample_period = attr->sample_period; in perf_event_alloc()
12948 if (has_inherit_and_sample_read(attr) && !(attr->sample_type & PERF_SAMPLE_TID)) in perf_event_alloc()
12952 event->attr.branch_sample_type = 0; in perf_event_alloc()
12978 if (event->attr.aux_output && in perf_event_alloc()
12980 event->attr.aux_pause || event->attr.aux_resume)) in perf_event_alloc()
12983 if (event->attr.aux_pause && event->attr.aux_resume) in perf_event_alloc()
12986 if (event->attr.aux_start_paused) { in perf_event_alloc()
12993 err = perf_cgroup_connect(cgroup_fd, event, attr, group_leader); in perf_event_alloc()
13028 if (event->attr.sample_type & PERF_SAMPLE_CALLCHAIN) { in perf_event_alloc()
13029 err = get_callchain_buffers(attr->sample_max_stack); in perf_event_alloc()
13054 struct perf_event_attr *attr) in perf_copy_attr() argument
13060 memset(attr, 0, sizeof(*attr)); in perf_copy_attr()
13072 ret = copy_struct_from_user(attr, sizeof(*attr), uattr, size); in perf_copy_attr()
13079 attr->size = size; in perf_copy_attr()
13081 if (attr->__reserved_1 || attr->__reserved_2 || attr->__reserved_3) in perf_copy_attr()
13084 if (attr->sample_type & ~(PERF_SAMPLE_MAX-1)) in perf_copy_attr()
13087 if (attr->read_format & ~(PERF_FORMAT_MAX-1)) in perf_copy_attr()
13090 if (attr->sample_type & PERF_SAMPLE_BRANCH_STACK) { in perf_copy_attr()
13091 u64 mask = attr->branch_sample_type; in perf_copy_attr()
13105 if (!attr->exclude_kernel) in perf_copy_attr()
13108 if (!attr->exclude_user) in perf_copy_attr()
13111 if (!attr->exclude_hv) in perf_copy_attr()
13116 attr->branch_sample_type = mask; in perf_copy_attr()
13126 if (attr->sample_type & PERF_SAMPLE_REGS_USER) { in perf_copy_attr()
13127 ret = perf_reg_validate(attr->sample_regs_user); in perf_copy_attr()
13132 if (attr->sample_type & PERF_SAMPLE_STACK_USER) { in perf_copy_attr()
13141 if (attr->sample_stack_user >= USHRT_MAX) in perf_copy_attr()
13143 else if (!IS_ALIGNED(attr->sample_stack_user, sizeof(u64))) in perf_copy_attr()
13147 if (!attr->sample_max_stack) in perf_copy_attr()
13148 attr->sample_max_stack = sysctl_perf_event_max_stack; in perf_copy_attr()
13150 if (attr->sample_type & PERF_SAMPLE_REGS_INTR) in perf_copy_attr()
13151 ret = perf_reg_validate(attr->sample_regs_intr); in perf_copy_attr()
13154 if (attr->sample_type & PERF_SAMPLE_CGROUP) in perf_copy_attr()
13157 if ((attr->sample_type & PERF_SAMPLE_WEIGHT) && in perf_copy_attr()
13158 (attr->sample_type & PERF_SAMPLE_WEIGHT_STRUCT)) in perf_copy_attr()
13161 if (!attr->inherit && attr->inherit_thread) in perf_copy_attr()
13164 if (attr->remove_on_exec && attr->enable_on_exec) in perf_copy_attr()
13167 if (attr->sigtrap && !attr->remove_on_exec) in perf_copy_attr()
13174 put_user(sizeof(*attr), &uattr->size); in perf_copy_attr()
13314 perf_check_permission(struct perf_event_attr *attr, struct task_struct *task) in perf_check_permission() argument
13319 if (attr->sigtrap) { in perf_check_permission()
13360 struct perf_event_attr attr; in SYSCALL_DEFINE5() local
13375 err = perf_copy_attr(attr_uptr, &attr); in SYSCALL_DEFINE5()
13384 if (!attr.exclude_kernel) { in SYSCALL_DEFINE5()
13390 if (attr.namespaces) { in SYSCALL_DEFINE5()
13395 if (attr.freq) { in SYSCALL_DEFINE5()
13396 if (attr.sample_freq > sysctl_perf_event_sample_rate) in SYSCALL_DEFINE5()
13399 if (attr.sample_period & (1ULL << 63)) in SYSCALL_DEFINE5()
13404 if ((attr.sample_type & PERF_SAMPLE_PHYS_ADDR)) { in SYSCALL_DEFINE5()
13411 if (attr.sample_type & PERF_SAMPLE_REGS_INTR) { in SYSCALL_DEFINE5()
13464 group_leader->attr.inherit != attr.inherit) { in SYSCALL_DEFINE5()
13472 event = perf_event_alloc(&attr, cpu, task, group_leader, NULL, in SYSCALL_DEFINE5()
13492 if (attr.use_clockid) { in SYSCALL_DEFINE5()
13493 err = perf_event_set_clock(event, attr.clockid); in SYSCALL_DEFINE5()
13513 if (!perf_check_permission(&attr, task)) in SYSCALL_DEFINE5()
13579 if (attr.exclusive || attr.pinned) in SYSCALL_DEFINE5()
13764 perf_event_create_kernel_counter(struct perf_event_attr *attr, int cpu, in perf_event_create_kernel_counter() argument
13779 if (attr->aux_output || attr->aux_action) in perf_event_create_kernel_counter()
13787 event = perf_event_alloc(attr, cpu, task, NULL, NULL, in perf_event_create_kernel_counter()
13978 if (child_event->attr.inherit_stat) { in sync_child_event()
14224 return &event->attr; in perf_event_attrs()
14274 child_event = perf_event_alloc(&parent_event->attr, in inherit_event()
14316 if (parent_event->attr.freq) { in inherit_event()
14417 if (!event->attr.inherit || in inherit_task_group()
14418 (event->attr.inherit_thread && !(clone_flags & CLONE_THREAD)) || in inherit_task_group()
14420 (event->attr.sigtrap && (clone_flags & CLONE_CLEAR_SIGHAND))) { in inherit_task_group()
14800 ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr, in perf_event_sysfs_show() argument
14804 container_of(attr, struct perf_pmu_events_attr, attr); in perf_event_sysfs_show()