Lines Matching full:os
144 static const char *json_sep(struct outstate *os) in json_sep() argument
146 const char *sep = os->first ? "" : ", "; in json_sep()
148 os->first = false; in json_sep()
152 #define json_out(os, format, ...) fprintf((os)->fh, "%s" format, json_sep(os), ##__VA_ARGS__) argument
154 static void print_running_json(struct outstate *os, u64 run, u64 ena) in print_running_json() argument
160 json_out(os, "\"event-runtime\" : %" PRIu64 ", \"pcnt-running\" : %.2f", in print_running_json()
164 static void print_running(struct perf_stat_config *config, struct outstate *os, in print_running() argument
169 print_running_json(os, run, ena); in print_running()
192 static void print_noise_pct_json(struct outstate *os, in print_noise_pct_json() argument
195 json_out(os, "\"variance\" : %.2f", pct); in print_noise_pct_json()
198 static void print_noise_pct(struct perf_stat_config *config, struct outstate *os, in print_noise_pct() argument
205 print_noise_pct_json(os, pct); in print_noise_pct()
215 static void print_noise(struct perf_stat_config *config, struct outstate *os, in print_noise() argument
224 print_noise_pct(config, os, stddev_stats(&ps->res_stats), avg, before_metric); in print_noise()
237 static void print_cgroup_json(struct outstate *os, const char *cgrp_name) in print_cgroup_json() argument
239 json_out(os, "\"cgroup\" : \"%s\"", cgrp_name); in print_cgroup_json()
242 static void print_cgroup(struct perf_stat_config *config, struct outstate *os, in print_cgroup() argument
249 print_cgroup_json(os, cgrp_name); in print_cgroup()
364 static void print_aggr_id_json(struct perf_stat_config *config, struct outstate *os, in print_aggr_id_json() argument
369 json_out(os, "\"core\" : \"S%d-D%d-C%d\", \"aggregate-number\" : %d", in print_aggr_id_json()
373 json_out(os, "\"cache\" : \"S%d-D%d-L%d-ID%d\", \"aggregate-number\" : %d", in print_aggr_id_json()
377 json_out(os, "\"cluster\" : \"S%d-D%d-CLS%d\", \"aggregate-number\" : %d", in print_aggr_id_json()
381 json_out(os, "\"die\" : \"S%d-D%d\", \"aggregate-number\" : %d", in print_aggr_id_json()
385 json_out(os, "\"socket\" : \"S%d\", \"aggregate-number\" : %d", in print_aggr_id_json()
389 json_out(os, "\"node\" : \"N%d\", \"aggregate-number\" : %d", in print_aggr_id_json()
394 json_out(os, "\"core\" : \"S%d-D%d-C%d\"", in print_aggr_id_json()
397 json_out(os, "\"cpu\" : \"%d\"", in print_aggr_id_json()
402 json_out(os, "\"thread\" : \"%s-%d\"", in print_aggr_id_json()
414 static void aggr_printout(struct perf_stat_config *config, struct outstate *os, in aggr_printout() argument
418 print_aggr_id_json(config, os, evsel, id, aggr_nr); in aggr_printout()
428 struct outstate *os = ctx; in new_line_std() local
430 os->newline = true; in new_line_std()
434 struct outstate *os) in __new_line_std_csv() argument
436 fputc('\n', os->fh); in __new_line_std_csv()
438 fputs(os->timestamp, os->fh); in __new_line_std_csv()
439 aggr_printout(config, os, os->evsel, os->id, os->aggr_nr); in __new_line_std_csv()
442 static inline void __new_line_std(struct outstate *os) in __new_line_std() argument
444 fprintf(os->fh, " "); in __new_line_std()
448 struct outstate *os) in do_new_line_std() argument
450 __new_line_std_csv(config, os); in do_new_line_std()
452 fprintf(os->fh, " "); in do_new_line_std()
453 __new_line_std(os); in do_new_line_std()
460 struct outstate *os = ctx; in print_metric_std() local
461 FILE *out = os->fh; in print_metric_std()
463 bool newline = os->newline; in print_metric_std()
466 os->newline = false; in print_metric_std()
474 do_new_line_std(config, os); in print_metric_std()
486 struct outstate *os = ctx; in new_line_csv() local
489 __new_line_std_csv(config, os); in new_line_csv()
490 for (i = 0; i < os->csv_col_pad; i++) in new_line_csv()
491 fputs(config->csv_sep, os->fh); in new_line_csv()
499 struct outstate *os = ctx; in print_metric_csv() local
500 FILE *out = os->fh; in print_metric_csv()
521 struct outstate *os = ctx; in print_metric_json() local
522 FILE *out = os->fh; in print_metric_json()
525 json_out(os, "\"metric-value\" : \"%f\", \"metric-unit\" : \"%s\"", val, unit); in print_metric_json()
527 json_out(os, "\"metric-threshold\" : \"%s\"", in print_metric_json()
537 struct outstate *os = ctx; in new_line_json() local
539 fputs("\n{", os->fh); in new_line_json()
540 os->first = true; in new_line_json()
542 json_out(os, "%s", os->timestamp); in new_line_json()
544 aggr_printout(config, os, os->evsel, os->id, os->aggr_nr); in new_line_json()
562 struct outstate *os = ctx; in print_metricgroup_header_csv() local
567 for (i = 0; i < os->csv_col_pad - 2; i++) in print_metricgroup_header_csv()
568 fputs(config->csv_sep, os->fh); in print_metricgroup_header_csv()
572 for (i = 0; i < os->csv_col_pad; i++) in print_metricgroup_header_csv()
573 fputs(config->csv_sep, os->fh); in print_metricgroup_header_csv()
582 struct outstate *os = ctx; in print_metricgroup_header_std() local
586 __new_line_std(os); in print_metricgroup_header_std()
622 struct outstate *os = ctx; in print_metric_only() local
623 FILE *out = os->fh; in print_metric_only()
630 unit = fixunit(buf, os->evsel, unit); in print_metric_only()
639 os->first = false; in print_metric_only()
648 struct outstate *os = ctx; in print_metric_only_csv() local
649 FILE *out = os->fh; in print_metric_only_csv()
655 unit = fixunit(tbuf, os->evsel, unit); in print_metric_only_csv()
662 os->first = false; in print_metric_only_csv()
671 struct outstate *os = ctx; in print_metric_only_json() local
678 unit = fixunit(tbuf, os->evsel, unit); in print_metric_only_json()
688 json_out(os, "\"%s\" : \"%s\"", unit, vals); in print_metric_only_json()
697 struct outstate *os = ctx; in print_metric_header() local
702 os->evsel->priv != os->evsel->evlist->selected->priv) in print_metric_header()
705 if (os->evsel->cgrp != os->cgrp) in print_metric_header()
710 unit = fixunit(tbuf, os->evsel, unit); in print_metric_header()
715 fprintf(os->fh, "%s%s", unit, config->csv_sep); in print_metric_header()
717 fprintf(os->fh, "%*s ", config->metric_only_len, unit); in print_metric_header()
764 static void print_counter_value_json(struct outstate *os, in print_counter_value_json() argument
770 json_out(os, "\"counter-value\" : \"%f\"", avg); in print_counter_value_json()
772 json_out(os, "\"counter-value\" : \"%s\"", bad_count); in print_counter_value_json()
775 json_out(os, "\"unit\" : \"%s\"", evsel->unit); in print_counter_value_json()
777 json_out(os, "\"event\" : \"%s\"", evsel__name(evsel)); in print_counter_value_json()
780 static void print_counter_value(struct perf_stat_config *config, struct outstate *os, in print_counter_value() argument
784 print_counter_value_json(os, evsel, avg, ok); in print_counter_value()
792 struct outstate *os, in abs_printout() argument
796 aggr_printout(config, os, evsel, id, aggr_nr); in abs_printout()
797 print_counter_value(config, os, evsel, avg, ok); in abs_printout()
798 print_cgroup(config, os, evsel->cgrp); in abs_printout()
840 static void printout(struct perf_stat_config *config, struct outstate *os, in printout() argument
848 struct evsel *counter = os->evsel; in printout()
854 os->csv_col_pad = 4 + (counter->cgrp ? 1 : 0); in printout()
867 pm(config, os, METRIC_THRESHOLD_UNKNOWN, /*format=*/NULL, in printout()
886 out.ctx = os; in printout()
890 abs_printout(config, os, os->id, os->aggr_nr, counter, uval, ok); in printout()
892 print_noise(config, os, counter, noise, /*before_metric=*/true); in printout()
893 print_running(config, os, run, ena, /*before_metric=*/true); in printout()
900 aggr_printout(config, os, os->evsel, os->id, os->aggr_nr); in printout()
908 new_line_json(config, (void *)os); in printout()
910 __new_line_std_csv(config, os); in printout()
913 print_noise(config, os, counter, noise, /*before_metric=*/true); in printout()
914 print_running(config, os, run, ena, /*before_metric=*/true); in printout()
923 pm(config, os, METRIC_THRESHOLD_UNKNOWN, /*format=*/NULL, /*unit=*/NULL, /*val=*/0); in printout()
927 print_noise(config, os, counter, noise, /*before_metric=*/false); in printout()
928 print_running(config, os, run, ena, /*before_metric=*/false); in printout()
1073 struct outstate *os) in print_counter_aggrdata() argument
1084 os->id = id; in print_counter_aggrdata()
1085 os->aggr_nr = aggr->nr; in print_counter_aggrdata()
1086 os->evsel = counter; in print_counter_aggrdata()
1106 os->first = true; in print_counter_aggrdata()
1111 json_out(os, "%s", os->timestamp); in print_counter_aggrdata()
1113 fprintf(output, "%s", os->timestamp); in print_counter_aggrdata()
1121 printout(config, os, uval, run, ena, avg, aggr_idx); in print_counter_aggrdata()
1129 struct outstate *os, int aggr_idx) in print_metric_begin() argument
1135 os->first = true; in print_metric_begin()
1144 json_out(os, "%s", os->timestamp); in print_metric_begin()
1146 fprintf(config->output, "%s", os->timestamp); in print_metric_begin()
1151 aggr_printout(config, os, evsel, id, aggr->nr); in print_metric_begin()
1153 print_cgroup(config, os, os->cgrp ? : evsel->cgrp); in print_metric_begin()
1156 static void print_metric_end(struct perf_stat_config *config, struct outstate *os) in print_metric_end() argument
1164 if (os->first) in print_metric_end()
1173 struct outstate *os) in print_aggr() argument
1186 print_metric_begin(config, evlist, os, aggr_idx); in print_aggr()
1189 print_counter_aggrdata(config, counter, aggr_idx, os); in print_aggr()
1191 print_metric_end(config, os); in print_aggr()
1197 struct outstate *os) in print_aggr_cgroup() argument
1206 if (os->cgrp == evsel->cgrp) in print_aggr_cgroup()
1209 os->cgrp = evsel->cgrp; in print_aggr_cgroup()
1212 print_metric_begin(config, evlist, os, aggr_idx); in print_aggr_cgroup()
1215 if (counter->cgrp != os->cgrp) in print_aggr_cgroup()
1218 print_counter_aggrdata(config, counter, aggr_idx, os); in print_aggr_cgroup()
1220 print_metric_end(config, os); in print_aggr_cgroup()
1226 struct evsel *counter, struct outstate *os) in print_counter() argument
1235 print_counter_aggrdata(config, counter, aggr_idx, os); in print_counter()
1241 struct outstate *os) in print_no_aggr_metric() argument
1264 os->evsel = counter; in print_no_aggr_metric()
1265 os->id = aggr_cpu_id__cpu(cpu, /*data=*/NULL); in print_no_aggr_metric()
1267 print_metric_begin(config, evlist, os, aggr_idx); in print_no_aggr_metric()
1275 printout(config, os, uval, run, ena, 1.0, aggr_idx); in print_no_aggr_metric()
1278 print_metric_end(config, os); in print_no_aggr_metric()
1326 struct outstate os = { in print_metric_headers() local
1330 .ctx = &os, in print_metric_headers()
1347 os.cgrp = evlist__first(evlist)->cgrp; in print_metric_headers()
1355 os.evsel = counter; in print_metric_headers()
1368 struct outstate *os, struct timespec *ts) in prepare_timestamp() argument
1374 scnprintf(os->timestamp, sizeof(os->timestamp), "\"interval\" : %lu.%09lu", in prepare_timestamp()
1377 scnprintf(os->timestamp, sizeof(os->timestamp), "%lu.%09lu%s", in prepare_timestamp()
1380 scnprintf(os->timestamp, sizeof(os->timestamp), "%6lu.%09lu ", in prepare_timestamp()
1606 struct evsel *counter, struct outstate *os) in print_percore() argument
1617 return print_counter(config, counter, os); in print_percore()
1643 print_counter_aggrdata(config, counter, aggr_idx, os); in print_percore()
1654 struct outstate *os) in print_cgroup_counter() argument
1659 if (os->cgrp != counter->cgrp) { in print_cgroup_counter()
1660 if (os->cgrp != NULL) in print_cgroup_counter()
1661 print_metric_end(config, os); in print_cgroup_counter()
1663 os->cgrp = counter->cgrp; in print_cgroup_counter()
1664 print_metric_begin(config, evlist, os, /*aggr_idx=*/0); in print_cgroup_counter()
1667 print_counter(config, counter, os); in print_cgroup_counter()
1669 if (os->cgrp) in print_cgroup_counter()
1670 print_metric_end(config, os); in print_cgroup_counter()
1704 struct outstate os = { in evlist__print_counters() local
1715 prepare_timestamp(config, &os, ts); in evlist__print_counters()
1727 print_aggr_cgroup(config, evlist, &os); in evlist__print_counters()
1729 print_aggr(config, evlist, &os); in evlist__print_counters()
1734 iostat_print_counters(evlist, config, ts, os.timestamp, in evlist__print_counters()
1735 (iostat_print_counter_t)print_counter, &os); in evlist__print_counters()
1737 print_cgroup_counter(config, evlist, &os); in evlist__print_counters()
1739 print_metric_begin(config, evlist, &os, /*aggr_idx=*/0); in evlist__print_counters()
1741 print_counter(config, counter, &os); in evlist__print_counters()
1743 print_metric_end(config, &os); in evlist__print_counters()
1748 print_no_aggr_metric(config, evlist, &os); in evlist__print_counters()
1752 print_percore(config, counter, &os); in evlist__print_counters()
1754 print_counter(config, counter, &os); in evlist__print_counters()