[libvirt] [PATCH] qemu: Fix query-cpus-fast target architecture detection

From: Viktor Mihajlovski <mihajlov@linux.ibm.com> Since qemu 2.13 reports the target architecture in a property called 'target' additionally to the property 'arch', that has been used in qemu 2.12 in the response data of 'query-cpus-fast'. Libvirts monitor code prefers the 'target' property over 'arch'. At least for s390(x), target is reported as 's390x' while arch is 's390'. In a later step a comparison is performed against 's390' which fails for qemu 2.13 and later. In consequence the architecture specific data for s390 won't be extracted from the returned data, leading to incorrect values being reported by virsh domstats --vcpu. Changing to check explicitly for 's390' and 's390x'. Signed-off-by: Viktor Mihajlovski <mihajlov@linux.ibm.com> Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com> Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> --- src/qemu/qemu_monitor_json.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index cf474eb6c8..0236323a51 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -1772,7 +1772,7 @@ qemuMonitorJSONExtractCPUInfo(virJSONValuePtr data, goto cleanup; /* process optional architecture-specific data */ - if (STREQ_NULLABLE(arch, "s390")) + if (STREQ_NULLABLE(arch, "s390") || STREQ_NULLABLE(arch, "s390x")) qemuMonitorJSONExtractCPUS390Info(entry, cpus + i); } -- 2.17.0

Polite ping On 3/1/19 11:29 AM, Boris Fiuczynski wrote:
From: Viktor Mihajlovski <mihajlov@linux.ibm.com>
Since qemu 2.13 reports the target architecture in a property called 'target' additionally to the property 'arch', that has been used in qemu 2.12 in the response data of 'query-cpus-fast'. Libvirts monitor code prefers the 'target' property over 'arch'.
At least for s390(x), target is reported as 's390x' while arch is 's390'. In a later step a comparison is performed against 's390' which fails for qemu 2.13 and later.
In consequence the architecture specific data for s390 won't be extracted from the returned data, leading to incorrect values being reported by virsh domstats --vcpu.
Changing to check explicitly for 's390' and 's390x'.
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.ibm.com> Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com> Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> --- src/qemu/qemu_monitor_json.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index cf474eb6c8..0236323a51 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -1772,7 +1772,7 @@ qemuMonitorJSONExtractCPUInfo(virJSONValuePtr data, goto cleanup;
/* process optional architecture-specific data */ - if (STREQ_NULLABLE(arch, "s390")) + if (STREQ_NULLABLE(arch, "s390") || STREQ_NULLABLE(arch, "s390x")) qemuMonitorJSONExtractCPUS390Info(entry, cpus + i); }
-- Mit freundlichen Grüßen/Kind regards Boris Fiuczynski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Matthias Hartmann Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294

On 3/1/19 11:29 AM, Boris Fiuczynski wrote:
From: Viktor Mihajlovski <mihajlov@linux.ibm.com>
Since qemu 2.13 reports the target architecture in a property called 'target' additionally to the property 'arch', that has been used in qemu 2.12 in the response data of 'query-cpus-fast'. Libvirts monitor code prefers the 'target' property over 'arch'.
At least for s390(x), target is reported as 's390x' while arch is 's390'. In a later step a comparison is performed against 's390' which fails for qemu 2.13 and later.
In consequence the architecture specific data for s390 won't be extracted from the returned data, leading to incorrect values being reported by virsh domstats --vcpu.
Changing to check explicitly for 's390' and 's390x'.
Signed-off-by: Viktor Mihajlovski <mihajlov@linux.ibm.com> Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com> Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> --- src/qemu/qemu_monitor_json.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index cf474eb6c8..0236323a51 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -1772,7 +1772,7 @@ qemuMonitorJSONExtractCPUInfo(virJSONValuePtr data, goto cleanup;
/* process optional architecture-specific data */ - if (STREQ_NULLABLE(arch, "s390")) + if (STREQ_NULLABLE(arch, "s390") || STREQ_NULLABLE(arch, "s390x")) qemuMonitorJSONExtractCPUS390Info(entry, cpus + i); }
ACKed and pushed. Michal

On 3/7/19 4:57 PM, Michal Privoznik wrote:> On 3/1/19 11:29 AM, Boris Fiuczynski wrote:
ACKed and pushed.
Michal Thanks, Michael
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
-- Mit freundlichen Grüßen/Kind regards Boris Fiuczynski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Matthias Hartmann Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294
participants (2)
-
Boris Fiuczynski
-
Michal Privoznik