* Boolean statistics for KVM
* Fix build on Haiku -----BEGIN PGP SIGNATURE----- iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmLWejIUHHBib256aW5p QHJlZGhhdC5jb20ACgkQv/vSX3jHroOrhggArpe2oZHD0Bi+toGOu4wg0zq9PKZJ Mj8v2hjPHbVU0yj1vXbO4skm6OggcH1JgktNZb8vd5QJBiCZorSIR2FPyuTk677U tHrOyzw/r+zPk43bEb/r/O4uGCFmlQUYiesayUKViJVqcF3sUGvBS4dMBKiGnPi7 hyVLelnXqotcQYsURAXVYuVChDVMZs8ACa7vP9WKGEYWEkVdQRSlk9VMmssan0dD Ly+Ikw0FPENJYkNHT8+tM6VYv+Fpsi+PBcijUKRyfsfU5qmPm53rZKEAIhw0jCCV PsEZhzvAdU+frfOscuYkaUUgCYxy7dnXm90W7uMpLJYMECJgVuYoL4IKNQ== =AFZi -----END PGP SIGNATURE----- Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging * Boolean statistics for KVM * Fix build on Haiku # gpg: Signature made Tue 19 Jul 2022 10:32:34 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: util: Fix broken build on Haiku kvm: add support for boolean statistics monitor: add support for boolean statistics Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
5288bee45f
@ -3769,6 +3769,7 @@ static StatsList *add_kvmstat_entry(struct kvm_stats_desc *pdesc,
|
||||
case KVM_STATS_UNIT_BYTES:
|
||||
case KVM_STATS_UNIT_CYCLES:
|
||||
case KVM_STATS_UNIT_SECONDS:
|
||||
case KVM_STATS_UNIT_BOOLEAN:
|
||||
break;
|
||||
default:
|
||||
return stats_list;
|
||||
@ -3787,7 +3788,10 @@ static StatsList *add_kvmstat_entry(struct kvm_stats_desc *pdesc,
|
||||
stats->name = g_strdup(pdesc->name);
|
||||
stats->value = g_new0(StatsValue, 1);;
|
||||
|
||||
if (pdesc->size == 1) {
|
||||
if ((pdesc->flags & KVM_STATS_UNIT_MASK) == KVM_STATS_UNIT_BOOLEAN) {
|
||||
stats->value->u.boolean = *stats_data;
|
||||
stats->value->type = QTYPE_QBOOL;
|
||||
} else if (pdesc->size == 1) {
|
||||
stats->value->u.scalar = *stats_data;
|
||||
stats->value->type = QTYPE_QNUM;
|
||||
} else {
|
||||
@ -3835,6 +3839,10 @@ static StatsSchemaValueList *add_kvmschema_entry(struct kvm_stats_desc *pdesc,
|
||||
switch (pdesc->flags & KVM_STATS_UNIT_MASK) {
|
||||
case KVM_STATS_UNIT_NONE:
|
||||
break;
|
||||
case KVM_STATS_UNIT_BOOLEAN:
|
||||
schema_entry->value->has_unit = true;
|
||||
schema_entry->value->unit = STATS_UNIT_BOOLEAN;
|
||||
break;
|
||||
case KVM_STATS_UNIT_BYTES:
|
||||
schema_entry->value->has_unit = true;
|
||||
schema_entry->value->unit = STATS_UNIT_BYTES;
|
||||
|
@ -2031,6 +2031,7 @@ struct kvm_stats_header {
|
||||
#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_BOOLEAN (0x4 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
|
||||
|
||||
#define KVM_STATS_BASE_SHIFT 8
|
||||
|
@ -2342,6 +2342,8 @@ static void print_stats_results(Monitor *mon, StatsTarget target,
|
||||
|
||||
if (stats_value->type == QTYPE_QNUM) {
|
||||
monitor_printf(mon, ": %" PRId64 "\n", stats_value->u.scalar);
|
||||
} else if (stats_value->type == QTYPE_QBOOL) {
|
||||
monitor_printf(mon, ": %s\n", stats_value->u.boolean ? "yes" : "no");
|
||||
} else if (stats_value->type == QTYPE_QLIST) {
|
||||
uint64List *list;
|
||||
int i;
|
||||
|
@ -38,11 +38,12 @@
|
||||
# @bytes: stat reported in bytes.
|
||||
# @seconds: stat reported in seconds.
|
||||
# @cycles: stat reported in clock cycles.
|
||||
# @boolean: stat is a boolean value.
|
||||
#
|
||||
# Since: 7.1
|
||||
##
|
||||
{ 'enum' : 'StatsUnit',
|
||||
'data' : [ 'bytes', 'seconds', 'cycles' ] }
|
||||
'data' : [ 'bytes', 'seconds', 'cycles', 'boolean' ] }
|
||||
|
||||
##
|
||||
# @StatsProvider:
|
||||
@ -123,6 +124,7 @@
|
||||
##
|
||||
{ 'alternate': 'StatsValue',
|
||||
'data': { 'scalar': 'uint64',
|
||||
'boolean': 'bool',
|
||||
'list': [ 'uint64' ] } }
|
||||
|
||||
##
|
||||
|
Loading…
Reference in New Issue
Block a user