Lines Matching +full:0 +full:- +full:mon
9 #include "qapi/qapi-commands-stats.h"
17 static void print_stats_schema_value(Monitor *mon, StatsSchemaValue *value) in print_stats_schema_value() argument
20 monitor_printf(mon, " %s (%s%s", value->name, StatsType_str(value->type), in print_stats_schema_value()
21 value->has_unit || value->exponent ? ", " : ""); in print_stats_schema_value()
23 if (value->has_unit) { in print_stats_schema_value()
24 if (value->unit == STATS_UNIT_SECONDS) { in print_stats_schema_value()
26 } else if (value->unit == STATS_UNIT_BYTES) { in print_stats_schema_value()
31 if (unit && value->base == 10 && in print_stats_schema_value()
32 value->exponent >= -18 && value->exponent <= 18 && in print_stats_schema_value()
33 value->exponent % 3 == 0) { in print_stats_schema_value()
34 monitor_puts(mon, si_prefix(value->exponent)); in print_stats_schema_value()
35 } else if (unit && value->base == 2 && in print_stats_schema_value()
36 value->exponent >= 0 && value->exponent <= 60 && in print_stats_schema_value()
37 value->exponent % 10 == 0) { in print_stats_schema_value()
39 monitor_puts(mon, iec_binary_prefix(value->exponent)); in print_stats_schema_value()
40 } else if (value->exponent) { in print_stats_schema_value()
42 monitor_printf(mon, "* %d^%d%s", in print_stats_schema_value()
43 value->base, value->exponent, in print_stats_schema_value()
44 value->has_unit ? " " : ""); in print_stats_schema_value()
48 if (value->has_unit) { in print_stats_schema_value()
49 monitor_puts(mon, unit ? unit : StatsUnit_str(value->unit)); in print_stats_schema_value()
53 if (value->type == STATS_TYPE_LINEAR_HISTOGRAM && value->has_bucket_size) { in print_stats_schema_value()
54 monitor_printf(mon, ", bucket size=%d", value->bucket_size); in print_stats_schema_value()
56 monitor_printf(mon, ")"); in print_stats_schema_value()
65 for (node = list; node; node = node->next) { in find_schema_value_list()
66 if (node->value->provider == provider && in find_schema_value_list()
67 node->value->target == target) { in find_schema_value_list()
68 return node->value->stats; in find_schema_value_list()
74 static void print_stats_results(Monitor *mon, StatsTarget target, in print_stats_results() argument
81 find_schema_value_list(schema, result->provider, target); in print_stats_results()
85 monitor_printf(mon, "failed to find schema list for %s\n", in print_stats_results()
86 StatsProvider_str(result->provider)); in print_stats_results()
91 monitor_printf(mon, "provider: %s\n", in print_stats_results()
92 StatsProvider_str(result->provider)); in print_stats_results()
95 for (stats_list = result->stats; stats_list; in print_stats_results()
96 stats_list = stats_list->next, in print_stats_results()
97 schema_value_list = schema_value_list->next) { in print_stats_results()
99 Stats *stats = stats_list->value; in print_stats_results()
100 StatsValue *stats_value = stats->value; in print_stats_results()
101 StatsSchemaValue *schema_value = schema_value_list->value; in print_stats_results()
104 while (!g_str_equal(stats->name, schema_value->name)) { in print_stats_results()
105 if (!schema_value_list->next) { in print_stats_results()
106 monitor_printf(mon, "failed to find schema entry for %s\n", in print_stats_results()
107 stats->name); in print_stats_results()
110 schema_value_list = schema_value_list->next; in print_stats_results()
111 schema_value = schema_value_list->value; in print_stats_results()
114 print_stats_schema_value(mon, schema_value); in print_stats_results()
116 if (stats_value->type == QTYPE_QNUM) { in print_stats_results()
117 monitor_printf(mon, ": %" PRId64 "\n", stats_value->u.scalar); in print_stats_results()
118 } else if (stats_value->type == QTYPE_QBOOL) { in print_stats_results()
119 monitor_printf(mon, ": %s\n", stats_value->u.boolean ? "yes" : "no"); in print_stats_results()
120 } else if (stats_value->type == QTYPE_QLIST) { in print_stats_results()
124 monitor_printf(mon, ": "); in print_stats_results()
125 for (list = stats_value->u.list, i = 1; in print_stats_results()
127 list = list->next, i++) { in print_stats_results()
128 monitor_printf(mon, "[%d]=%" PRId64 " ", i, list->value); in print_stats_results()
130 monitor_printf(mon, "\n"); in print_stats_results()
143 filter->target = target; in stats_filter()
154 filter->u.vcpu.has_vcpus = true; in stats_filter()
155 filter->u.vcpu.vcpus = vcpu_list; in stats_filter()
173 for (provider_idx = 0; provider_idx < STATS_PROVIDER__MAX; provider_idx++) { in stats_filter()
176 request->provider = provider_idx; in stats_filter()
178 request->has_names = true; in stats_filter()
179 request->names = hmp_split_at_comma(names); in stats_filter()
185 filter->has_providers = true; in stats_filter()
186 filter->providers = request_list; in stats_filter()
190 void hmp_info_stats(Monitor *mon, const QDict *qdict) in hmp_info_stats() argument
204 target = qapi_enum_parse(&StatsTarget_lookup, target_str, -1, &err); in hmp_info_stats()
206 monitor_printf(mon, "invalid stats target %s\n", target_str); in hmp_info_stats()
210 provider = qapi_enum_parse(&StatsProvider_lookup, provider_str, -1, &err); in hmp_info_stats()
212 monitor_printf(mon, "invalid stats provider %s\n", provider_str); in hmp_info_stats()
225 filter = stats_filter(target, names, -1, provider); in hmp_info_stats()
228 int cpu_index = monitor_get_cpu_index(mon); in hmp_info_stats()
232 filter = stats_filter(target, names, -1, provider); in hmp_info_stats()
242 for (entry = stats; entry; entry = entry->next) { in hmp_info_stats()
243 print_stats_results(mon, target, provider_str == NULL, entry->value, schema); in hmp_info_stats()
248 monitor_printf(mon, "%s\n", error_get_pretty(err)); in hmp_info_stats()