Lines Matching refs:group
63 const struct fd_perfcntr_group *group; member
213 select_counter(struct counter_group *group, int ctr, int n) in select_counter() argument
215 assert(n < group->group->num_countables); in select_counter()
216 assert(ctr < group->group->num_counters); in select_counter()
218 group->label[ctr] = group->group->countables[n].name; in select_counter()
219 group->counter[ctr].select_val = n; in select_counter()
242 if (group->group->counters[ctr].enable) { in select_counter()
243 OUT_PKT0(ring, group->group->counters[ctr].enable, 1); in select_counter()
247 if (group->group->counters[ctr].clear) { in select_counter()
248 OUT_PKT0(ring, group->group->counters[ctr].clear, 1); in select_counter()
251 OUT_PKT0(ring, group->group->counters[ctr].clear, 1); in select_counter()
255 OUT_PKT0(ring, group->group->counters[ctr].select_reg, 1); in select_counter()
258 if (group->group->counters[ctr].enable) { in select_counter()
259 OUT_PKT0(ring, group->group->counters[ctr].enable, 1); in select_counter()
268 if (group->group->counters[ctr].enable) { in select_counter()
269 OUT_PKT4(ring, group->group->counters[ctr].enable, 1); in select_counter()
273 if (group->group->counters[ctr].clear) { in select_counter()
274 OUT_PKT4(ring, group->group->counters[ctr].clear, 1); in select_counter()
277 OUT_PKT4(ring, group->group->counters[ctr].clear, 1); in select_counter()
281 OUT_PKT4(ring, group->group->counters[ctr].select_reg, 1); in select_counter()
284 if (group->group->counters[ctr].enable) { in select_counter()
285 OUT_PKT4(ring, group->group->counters[ctr].enable, 1); in select_counter()
292 group->last[ctr] = *group->counter[ctr].val_lo; in select_counter()
293 group->stime[ctr] = gettime_us(); in select_counter()
297 resample_counter(struct counter_group *group, int ctr) in resample_counter() argument
299 uint32_t val = *group->counter[ctr].val_lo; in resample_counter()
301 uint32_t dt = delta(group->stime[ctr], t); in resample_counter()
302 uint32_t dval = delta(group->last[ctr], val); in resample_counter()
303 group->current[ctr] = (float)dval * 1000000.0 / (float)dt; in resample_counter()
304 group->last[ctr] = val; in resample_counter()
305 group->stime[ctr] = t; in resample_counter()
321 struct counter_group *group = &dev.groups[i]; in resample() local
322 for (unsigned j = 0; j < group->group->num_counters; j++) { in resample()
323 resample_counter(group, j); in resample()
433 redraw_counter(WINDOW *win, int row, struct counter_group *group, int ctr, in redraw_counter() argument
436 redraw_counter_label(win, row, group->label[ctr], selected); in redraw_counter()
451 if (strstr(group->label[ctr], "CYCLE") || in redraw_counter()
452 strstr(group->label[ctr], "BUSY") || strstr(group->label[ctr], "IDLE")) in redraw_counter()
453 redraw_counter_value_cycles(win, group->current[ctr]); in redraw_counter()
455 redraw_counter_value_raw(win, group->current[ctr]); in redraw_counter()
476 struct counter_group *group = &dev.groups[i]; in redraw() local
483 if (j < group->group->num_counters) { in redraw()
485 redraw_group_header(win, row - scroll, group->group->name); in redraw()
489 for (; j < group->group->num_counters; j++) { in redraw()
491 redraw_counter(win, row - scroll, group, j, row == current_cntr); in redraw()
518 struct counter_group *group = &dev.groups[i]; in current_counter() local
526 if (j < group->group->num_counters) { in current_counter()
535 for (; j < group->group->num_counters; j++) { in current_counter()
539 return group; in current_counter()
553 struct counter_group *group; in counter_dialog() local
560 group = current_counter(&cnt); in counter_dialog()
565 uint32_t selected = group->counter[cnt].select_val; in counter_dialog()
566 for (int i = 0; i < group->group->num_countables; i++) { in counter_dialog()
567 if (group->group->countables[i].selector == selected) { in counter_dialog()
582 int max = MIN2(dh - 2, group->group->num_countables); in counter_dialog()
595 assert(n < group->group->num_countables); in counter_dialog()
596 selector = group->group->countables[n].selector; in counter_dialog()
599 if (n < group->group->num_countables) in counter_dialog()
600 waddstr(dialog, group->group->countables[n].name); in counter_dialog()
613 current = MIN2(group->group->num_countables - 1, current + 1); in counter_dialog()
618 select_counter(group, cnt, selector); in counter_dialog()
728 const struct counter_group *group = &dev.groups[i]; in dump_counters() local
729 for (unsigned j = 0; j < group->group->num_counters; j++) { in dump_counters()
730 const char *label = group->label[j]; in dump_counters()
731 float val = group->current[j]; in dump_counters()
735 label = group->group->countables[0].name; in dump_counters()
757 struct counter_group *group = &dev.groups[i]; in restore_counter_groups() local
764 for (; j < group->group->num_counters; j++) { in restore_counter_groups()
765 select_counter(group, j, group->counter[j].select_val); in restore_counter_groups()
774 struct counter_group *group = &dev.groups[i]; in setup_counter_groups() local
776 group->group = &groups[i]; in setup_counter_groups()
778 max_rows += group->group->num_counters + 1; in setup_counter_groups()
783 if (group->group->num_counters <= 1) in setup_counter_groups()
787 for (unsigned j = 0; j < group->group->num_counters; j++) { in setup_counter_groups()
788 group->counter[j].counter = &group->group->counters[j]; in setup_counter_groups()
790 group->counter[j].val_hi = in setup_counter_groups()
791 dev.io + (group->counter[j].counter->counter_reg_hi * 4); in setup_counter_groups()
792 group->counter[j].val_lo = in setup_counter_groups()
793 dev.io + (group->counter[j].counter->counter_reg_lo * 4); in setup_counter_groups()
795 group->counter[j].select_val = j; in setup_counter_groups()
798 for (unsigned j = 0; j < group->group->num_countables; j++) { in setup_counter_groups()
800 MAX2(ctr_width, strlen(group->group->countables[j].name) + 1); in setup_counter_groups()
816 struct counter_group *group = &dev.groups[i]; in config_save() local
824 config_setting_get_member(setting, group->group->name); in config_save()
826 for (; j < group->group->num_counters; j++) { in config_save()
830 config_setting_set_int(s, group->counter[j].select_val); in config_save()
859 struct counter_group *group = &dev.groups[i]; in config_restore() local
867 config_setting_get_member(setting, group->group->name); in config_restore()
871 config_setting_add(setting, group->group->name, CONFIG_TYPE_GROUP); in config_restore()
874 for (; j < group->group->num_counters; j++) { in config_restore()
882 select_counter(group, j, config_setting_get_int(s)); in config_restore()