Lines Matching refs:event

131 	struct kvm_event *event;  in clear_events_cache_stats()  local
137 list_for_each_entry(event, head, hash_entry) { in clear_events_cache_stats()
139 event->total.time = 0; in clear_events_cache_stats()
140 init_stats(&event->total.stats); in clear_events_cache_stats()
142 for (j = 0; j < event->max_vcpu; ++j) { in clear_events_cache_stats()
143 event->vcpu[j].time = 0; in clear_events_cache_stats()
144 init_stats(&event->vcpu[j].stats); in clear_events_cache_stats()
156 static bool kvm_event_expand(struct kvm_event *event, int vcpu_id) in kvm_event_expand() argument
158 int old_max_vcpu = event->max_vcpu; in kvm_event_expand()
161 if (vcpu_id < event->max_vcpu) in kvm_event_expand()
164 while (event->max_vcpu <= vcpu_id) in kvm_event_expand()
165 event->max_vcpu += DEFAULT_VCPU_NUM; in kvm_event_expand()
167 prev = event->vcpu; in kvm_event_expand()
168 event->vcpu = realloc(event->vcpu, in kvm_event_expand()
169 event->max_vcpu * sizeof(*event->vcpu)); in kvm_event_expand()
170 if (!event->vcpu) { in kvm_event_expand()
176 memset(event->vcpu + old_max_vcpu, 0, in kvm_event_expand()
177 (event->max_vcpu - old_max_vcpu) * sizeof(*event->vcpu)); in kvm_event_expand()
183 struct kvm_event *event; in kvm_alloc_init_event() local
185 event = zalloc(sizeof(*event)); in kvm_alloc_init_event()
186 if (!event) { in kvm_alloc_init_event()
191 event->key = *key; in kvm_alloc_init_event()
192 init_stats(&event->total.stats); in kvm_alloc_init_event()
193 return event; in kvm_alloc_init_event()
199 struct kvm_event *event; in find_create_kvm_event() local
205 list_for_each_entry(event, head, hash_entry) { in find_create_kvm_event()
206 if (event->key.key == key->key && event->key.info == key->info) in find_create_kvm_event()
207 return event; in find_create_kvm_event()
210 event = kvm_alloc_init_event(key); in find_create_kvm_event()
211 if (!event) in find_create_kvm_event()
214 list_add(&event->hash_entry, head); in find_create_kvm_event()
215 return event; in find_create_kvm_event()
222 struct kvm_event *event = NULL; in handle_begin_event() local
225 event = find_create_kvm_event(kvm, key); in handle_begin_event()
227 vcpu_record->last_event = event; in handle_begin_event()
239 static double kvm_event_rel_stddev(int vcpu_id, struct kvm_event *event) in kvm_event_rel_stddev() argument
241 struct kvm_event_stats *kvm_stats = &event->total; in kvm_event_rel_stddev()
244 kvm_stats = &event->vcpu[vcpu_id]; in kvm_event_rel_stddev()
250 static bool update_kvm_event(struct kvm_event *event, int vcpu_id, in update_kvm_event() argument
254 kvm_update_event_stats(&event->total, time_diff); in update_kvm_event()
258 if (!kvm_event_expand(event, vcpu_id)) in update_kvm_event()
261 kvm_update_event_stats(&event->vcpu[vcpu_id], time_diff); in update_kvm_event()
292 struct kvm_event *event = NULL; in handle_child_event() local
295 event = find_create_kvm_event(kvm, key); in handle_child_event()
297 vcpu_record->last_event = event; in handle_child_event()
302 static bool skip_event(const char *event) in skip_event() argument
307 if (!strcmp(event, *skip_events)) in skip_event()
318 struct kvm_event *event; in handle_end_event() local
327 event = vcpu_record->last_event; in handle_end_event()
340 if (!event && key->key == INVALID_KEY) in handle_end_event()
343 if (!event) in handle_end_event()
344 event = find_create_kvm_event(kvm, key); in handle_end_event()
346 if (!event) in handle_end_event()
363 kvm->events_ops->decode_key(kvm, &event->key, decode); in handle_end_event()
371 return update_kvm_event(event, vcpu, time_diff); in handle_end_event()
427 static u64 get_event_ ##func(struct kvm_event *event, int vcpu) \
430 return event->total.field; \
432 if (vcpu >= event->max_vcpu) \
435 return event->vcpu[vcpu].field; \
477 static void insert_to_result(struct rb_root *result, struct kvm_event *event, in insert_to_result() argument
488 if (bigger(event, p, vcpu)) in insert_to_result()
494 rb_link_node(&event->rb, parent, rb); in insert_to_result()
495 rb_insert_color(&event->rb, result); in insert_to_result()
499 update_total_count(struct perf_kvm_stat *kvm, struct kvm_event *event) in update_total_count() argument
503 kvm->total_count += get_event_count(event, vcpu); in update_total_count()
504 kvm->total_time += get_event_time(event, vcpu); in update_total_count()
507 static bool event_is_valid(struct kvm_event *event, int vcpu) in event_is_valid() argument
509 return !!get_event_count(event, vcpu); in event_is_valid()
516 struct kvm_event *event; in sort_result() local
519 list_for_each_entry(event, &kvm->kvm_events_cache[i], hash_entry) { in sort_result()
520 if (event_is_valid(event, vcpu)) { in sort_result()
521 update_total_count(kvm, event); in sort_result()
522 insert_to_result(&kvm->result, event, in sort_result()
579 struct kvm_event *event; in print_result() local
599 while ((event = pop_from_result(&kvm->result))) { in print_result()
602 ecount = get_event_count(event, vcpu); in print_result()
603 etime = get_event_time(event, vcpu); in print_result()
604 max = get_event_max(event, vcpu); in print_result()
605 min = get_event_min(event, vcpu); in print_result()
607 kvm->events_ops->decode_key(kvm, &event->key, decode); in print_result()
615 kvm_event_rel_stddev(vcpu, event)); in print_result()
628 union perf_event *event __maybe_unused, in process_lost_event()
649 union perf_event *event, in process_sample_event() argument
664 event->header.type); in process_sample_event()
720 union perf_event *event; in perf_kvm__mmap_read_idx() local
726 while ((event = perf_evlist__mmap_read(kvm->evlist, idx)) != NULL) { in perf_kvm__mmap_read_idx()
727 err = perf_evlist__parse_sample(kvm->evlist, event, &sample); in perf_kvm__mmap_read_idx()
734 err = perf_session__queue_event(kvm->session, event, &sample, 0); in perf_kvm__mmap_read_idx()