[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] fix key error for qemuMonitorGetBlockStatsInfo



On 2012年06月21日 15:58, Osier Yang wrote:
On 2012年06月21日 15:37, lvroyce linux vnet ibm com wrote:
From: lvroyce<lvroyce linux vnet ibm com>

virDomainBlockStatsFlags can't collect total_time_ns for read/write/flush
because of key typo when retriveing from qemu cmd result

Signed-off-by: lvroyce<lvroyce linux vnet ibm com>
---
src/qemu/qemu_monitor_json.c | 24 ++++++++++++------------
src/qemu/qemu_monitor_text.c | 18 +++++++++---------
2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 7d2da21..7eb9529 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -1710,12 +1710,12 @@ int
qemuMonitorJSONGetBlockStatsInfo(qemuMonitorPtr mon,
goto cleanup;
}
if (rd_total_times&&
- virJSONValueObjectHasKey(stats, "rd_total_times_ns")&&
- (virJSONValueObjectGetNumberLong(stats, "rd_total_times_ns",
+ virJSONValueObjectHasKey(stats, "rd_total_time_ns")&&
+ (virJSONValueObjectGetNumberLong(stats, "rd_total_time_ns",
rd_total_times)< 0)) {
qemuReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot read %s statistic"),
- "rd_total_times_ns");
+ "rd_total_time_ns");
goto cleanup;
}
if (virJSONValueObjectGetNumberLong(stats, "wr_bytes", wr_bytes)< 0) {
@@ -1731,12 +1731,12 @@ int
qemuMonitorJSONGetBlockStatsInfo(qemuMonitorPtr mon,
goto cleanup;
}
if (wr_total_times&&
- virJSONValueObjectHasKey(stats, "wr_total_times_ns")&&
- (virJSONValueObjectGetNumberLong(stats, "wr_total_times_ns",
+ virJSONValueObjectHasKey(stats, "wr_total_time_ns")&&
+ (virJSONValueObjectGetNumberLong(stats, "wr_total_time_ns",
wr_total_times)< 0)) {
qemuReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot read %s statistic"),
- "wr_total_times_ns");
+ "wr_total_time_ns");
goto cleanup;
}
if (flush_req&&
@@ -1749,12 +1749,12 @@ int
qemuMonitorJSONGetBlockStatsInfo(qemuMonitorPtr mon,
goto cleanup;
}
if (flush_total_times&&
- virJSONValueObjectHasKey(stats, "flush_total_times_ns")&&
- (virJSONValueObjectGetNumberLong(stats, "flush_total_times_ns",
+ virJSONValueObjectHasKey(stats, "flush_total_time_ns")&&
+ (virJSONValueObjectGetNumberLong(stats, "flush_total_time_ns",
flush_total_times)< 0)) {
qemuReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot read %s statistic"),
- "flush_total_times_ns");
+ "flush_total_time_ns");
goto cleanup;
}
}
@@ -1822,12 +1822,12 @@ int
qemuMonitorJSONGetBlockStatsParamsNumber(qemuMonitorPtr mon,

if (STREQ(key, "rd_bytes") ||
STREQ(key, "rd_operations") ||
- STREQ(key, "rd_total_times_ns") ||
+ STREQ(key, "rd_total_time_ns") ||
STREQ(key, "wr_bytes") ||
STREQ(key, "wr_operations") ||
- STREQ(key, "wr_total_times_ns") ||
+ STREQ(key, "wr_total_time_ns") ||
STREQ(key, "flush_operations") ||
- STREQ(key, "flush_total_times_ns")) {
+ STREQ(key, "flush_total_time_ns")) {
num++;
} else {
/* wr_highest_offset is parsed by qemuMonitorJSONGetBlockExtent. */
diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index edb5dfd..086b06b 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -977,13 +977,13 @@ int
qemuMonitorTextGetBlockStatsInfo(qemuMonitorPtr mon,
if (virStrToLong_ll (p,&dummy, 10, wr_req) == -1)
VIR_DEBUG ("error reading wr_req: %s", p);
} else if (rd_total_times&&
- STRPREFIX (p, "rd_total_times_ns=")) {
- p += strlen("rd_total_times_ns=");
+ STRPREFIX (p, "rd_total_time_ns=")) {
+ p += strlen("rd_total_time_ns=");
if (virStrToLong_ll (p,&dummy, 10, rd_total_times) == -1)
VIR_DEBUG ("error reading rd_total_times: %s", p);
} else if (wr_total_times&&
- STRPREFIX (p, "wr_total_times_ns=")) {
- p += strlen("wr_total_times_ns=");
+ STRPREFIX (p, "wr_total_time_ns=")) {
+ p += strlen("wr_total_time_ns=");
if (virStrToLong_ll (p,&dummy, 10, wr_total_times) == -1)
VIR_DEBUG ("error reading wr_total_times: %s", p);
} else if (flush_req&&
@@ -992,8 +992,8 @@ int
qemuMonitorTextGetBlockStatsInfo(qemuMonitorPtr mon,
if (virStrToLong_ll (p,&dummy, 10, flush_req) == -1)
VIR_DEBUG ("error reading flush_req: %s", p);
} else if (flush_total_times&&
- STRPREFIX (p, "flush_total_times_ns=")) {
- p += strlen("flush_total_times_ns=");
+ STRPREFIX (p, "flush_total_time_ns=")) {
+ p += strlen("flush_total_time_ns=");
if (virStrToLong_ll (p,&dummy, 10, flush_total_times) == -1)
VIR_DEBUG ("error reading flush_total_times: %s", p);
} else {
@@ -1071,10 +1071,10 @@ int
qemuMonitorTextGetBlockStatsParamsNumber(qemuMonitorPtr mon,
STRPREFIX (p, " wr_bytes=") ||
STRPREFIX (p, " rd_operations=") ||
STRPREFIX (p, " wr_operations=") ||
- STRPREFIX (p, " rd_total_times_ns=") ||
- STRPREFIX (p, " wr_total_times_ns=") ||
+ STRPREFIX (p, " rd_total_time_ns=") ||
+ STRPREFIX (p, " wr_total_time_ns=") ||
STRPREFIX (p, " flush_operations=") ||
- STRPREFIX (p, " flush_total_times_ns=")) {
+ STRPREFIX (p, " flush_total_time_ns=")) {
num++;
} else {
VIR_DEBUG ("unknown block stat near %s", p);


ACK, interesting, QEMU doc has bug to fix too then. E.g.

{
"device":"sd0",
"stats":{
"wr_highest_offset":0,
"wr_bytes":0,
"wr_operations":0,
"rd_bytes":0,
"rd_operations":0
"flush_operations":0,
"wr_total_times_ns":0
"rd_total_times_ns":0
"flush_total_times_ns":0
}


Hi, lvroyce.

Sorry for the late, and not see your message on IRC. Pushed now.

Regards,
Osier


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]