Lines Matching refs:event
278 static char *event_fmt(struct hv_24x7_event_data *event, unsigned domain) in event_fmt() argument
294 be16_to_cpu(event->event_counter_offs) + in event_fmt()
295 be16_to_cpu(event->event_group_record_offs), in event_fmt()
373 struct hv_24x7_event_data *event, in event_to_attr() argument
388 val = event_fmt(event, domain); in event_to_attr()
393 ev_name = event_name(event, &event_name_len); in event_to_attr()
416 static struct attribute *event_to_desc_attr(struct hv_24x7_event_data *event, in event_to_desc_attr() argument
420 char *name = event_name(event, &nl); in event_to_desc_attr()
421 char *desc = event_desc(event, &dl); in event_to_desc_attr()
431 event_to_long_desc_attr(struct hv_24x7_event_data *event, int nonce) in event_to_long_desc_attr() argument
434 char *name = event_name(event, &nl); in event_to_long_desc_attr()
435 char *desc = event_long_desc(event, &dl); in event_to_long_desc_attr()
445 struct hv_24x7_event_data *event, int nonce) in event_data_to_attrs() argument
449 switch (event->domain) { in event_data_to_attrs()
451 *attrs = event_to_attr(ix, event, event->domain, nonce); in event_data_to_attrs()
455 attrs[i] = event_to_attr(ix, event, core_domains[i], in event_data_to_attrs()
468 "catalog\n", ix, event->domain); in event_data_to_attrs()
473 static size_t event_to_attr_ct(struct hv_24x7_event_data *event) in event_to_attr_ct() argument
475 switch (event->domain) { in event_to_attr_ct()
593 static ssize_t catalog_event_len_validate(struct hv_24x7_event_data *event, in catalog_event_len_validate() argument
611 if (!event_fixed_portion_is_within(event, end)) { in catalog_event_len_validate()
617 ev_len = be16_to_cpu(event->length); in catalog_event_len_validate()
621 event_idx, ev_len, event); in catalog_event_len_validate()
623 ev_end = (__u8 *)event + ev_len; in catalog_event_len_validate()
631 calc_ev_end = event_end(event, end); in catalog_event_len_validate()
634 event_idx, event_data_bytes, event, end, in catalog_event_len_validate()
641 event_idx, event, ev_end, offset, calc_ev_end); in catalog_event_len_validate()
666 struct hv_24x7_event_data *event; in create_events_from_catalog() local
763 for (junk_events = 0, event = event_data, event_idx = 0, attr_max = 0; in create_events_from_catalog()
765 event_idx++, event = (void *)event + ev_len) { in create_events_from_catalog()
766 size_t offset = (void *)event - (void *)event_data; in create_events_from_catalog()
770 ev_len = catalog_event_len_validate(event, event_idx, in create_events_from_catalog()
777 name = event_name(event, &nl); in create_events_from_catalog()
779 if (event->event_group_record_len == 0) { in create_events_from_catalog()
786 if (!catalog_entry_domain_is_valid(event->domain)) { in create_events_from_catalog()
788 event_idx, nl, name, event->domain); in create_events_from_catalog()
793 attr_max += event_to_attr_ct(event); in create_events_from_catalog()
823 event = event_data, event_idx = 0; in create_events_from_catalog()
825 event_idx++, ev_len = be16_to_cpu(event->length), in create_events_from_catalog()
826 event = (void *)event + ev_len) { in create_events_from_catalog()
834 if (event->event_group_record_len == 0) in create_events_from_catalog()
836 if (!catalog_entry_domain_is_valid(event->domain)) in create_events_from_catalog()
839 name = event_name(event, &nl); in create_events_from_catalog()
840 nonce = event_uniq_add(&ev_uniq, name, nl, event->domain); in create_events_from_catalog()
842 event, nonce); in create_events_from_catalog()
849 event_descs[desc_ct] = event_to_desc_attr(event, nonce); in create_events_from_catalog()
853 event_to_long_desc_attr(event, nonce); in create_events_from_catalog()
1068 static int add_event_to_24x7_request(struct perf_event *event, in add_event_to_24x7_request() argument
1081 if (is_physical_domain(event_get_domain(event))) in add_event_to_24x7_request()
1082 idx = event_get_core(event); in add_event_to_24x7_request()
1084 idx = event_get_vcpu(event); in add_event_to_24x7_request()
1089 req->performance_domain = event_get_domain(event); in add_event_to_24x7_request()
1091 req->data_offset = cpu_to_be32(event_get_offset(event)); in add_event_to_24x7_request()
1092 req->starting_lpar_ix = cpu_to_be16(event_get_lpar(event)), in add_event_to_24x7_request()
1100 static unsigned long single_24x7_request(struct perf_event *event, u64 *count) in single_24x7_request() argument
1115 ret = add_event_to_24x7_request(event, request_buffer); in single_24x7_request()
1136 static int h_24x7_event_init(struct perf_event *event) in h_24x7_event_init() argument
1144 if (event->attr.type != event->pmu->type) in h_24x7_event_init()
1148 if (event_get_reserved1(event) || in h_24x7_event_init()
1149 event_get_reserved2(event) || in h_24x7_event_init()
1150 event_get_reserved3(event)) { in h_24x7_event_init()
1152 event->attr.config, in h_24x7_event_init()
1153 event_get_reserved1(event), in h_24x7_event_init()
1154 event->attr.config1, in h_24x7_event_init()
1155 event_get_reserved2(event), in h_24x7_event_init()
1156 event->attr.config2, in h_24x7_event_init()
1157 event_get_reserved3(event)); in h_24x7_event_init()
1162 if (event->attr.exclude_user || in h_24x7_event_init()
1163 event->attr.exclude_kernel || in h_24x7_event_init()
1164 event->attr.exclude_hv || in h_24x7_event_init()
1165 event->attr.exclude_idle || in h_24x7_event_init()
1166 event->attr.exclude_host || in h_24x7_event_init()
1167 event->attr.exclude_guest) in h_24x7_event_init()
1171 if (has_branch_stack(event)) in h_24x7_event_init()
1175 if (event_get_offset(event) % 8) { in h_24x7_event_init()
1181 domain = event_get_domain(event); in h_24x7_event_init()
1195 (event_get_lpar(event) != event_get_lpar_max()))) { in h_24x7_event_init()
1198 event_get_lpar(event)); in h_24x7_event_init()
1203 if (single_24x7_request(event, &ct)) { in h_24x7_event_init()
1211 static u64 h_24x7_get_value(struct perf_event *event) in h_24x7_get_value() argument
1215 ret = single_24x7_request(event, &ct); in h_24x7_get_value()
1223 static void update_event_count(struct perf_event *event, u64 now) in update_event_count() argument
1227 prev = local64_xchg(&event->hw.prev_count, now); in update_event_count()
1228 local64_add(now - prev, &event->count); in update_event_count()
1231 static void h_24x7_event_read(struct perf_event *event) in h_24x7_event_read() argument
1235 now = h_24x7_get_value(event); in h_24x7_event_read()
1236 update_event_count(event, now); in h_24x7_event_read()
1239 static void h_24x7_event_start(struct perf_event *event, int flags) in h_24x7_event_start() argument
1242 local64_set(&event->hw.prev_count, h_24x7_get_value(event)); in h_24x7_event_start()
1245 static void h_24x7_event_stop(struct perf_event *event, int flags) in h_24x7_event_stop() argument
1247 h_24x7_event_read(event); in h_24x7_event_stop()
1250 static int h_24x7_event_add(struct perf_event *event, int flags) in h_24x7_event_add() argument
1253 h_24x7_event_start(event, flags); in h_24x7_event_add()