From: Luiz Capitulino <lcapitulino@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, aliguori@us.ibm.com, armbru@redhat.com
Subject: [Qemu-devel] [PATCH 5/6] QMP: query-status: Add 'io-status' key
Date: Thu, 1 Sep 2011 15:37:54 -0300 [thread overview]
Message-ID: <1314902275-5240-6-git-send-email-lcapitulino@redhat.com> (raw)
In-Reply-To: <1314902275-5240-1-git-send-email-lcapitulino@redhat.com>
Contains the I/O status for the given device. The key is only present
if the device supports it and the VM is configured to stop on errors.
Please, check the documentation being added in this commit for more
information.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
block.c | 15 ++++++++++++++-
qmp-commands.hx | 5 +++++
2 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/block.c b/block.c
index c54caf2..77579b6 100644
--- a/block.c
+++ b/block.c
@@ -1865,6 +1865,12 @@ void bdrv_info_print(Monitor *mon, const QObject *data)
qlist_iter(qobject_to_qlist(data), bdrv_print_dict, mon);
}
+static const char *const io_status_name[BDRV_IOS_MAX] = {
+ [BDRV_IOS_OK] = "ok",
+ [BDRV_IOS_FAILED] = "failed",
+ [BDRV_IOS_ENOSPC] = "nospace",
+};
+
void bdrv_info(Monitor *mon, QObject **ret_data)
{
QList *bs_list;
@@ -1874,15 +1880,16 @@ void bdrv_info(Monitor *mon, QObject **ret_data)
QTAILQ_FOREACH(bs, &bdrv_states, list) {
QObject *bs_obj;
+ QDict *bs_dict;
bs_obj = qobject_from_jsonf("{ 'device': %s, 'type': 'unknown', "
"'removable': %i, 'locked': %i }",
bs->device_name, bs->removable,
bs->locked);
+ bs_dict = qobject_to_qdict(bs_obj);
if (bs->drv) {
QObject *obj;
- QDict *bs_dict = qobject_to_qdict(bs_obj);
obj = qobject_from_jsonf("{ 'file': %s, 'ro': %i, 'drv': %s, "
"'encrypted': %i }",
@@ -1897,6 +1904,12 @@ void bdrv_info(Monitor *mon, QObject **ret_data)
qdict_put_obj(bs_dict, "inserted", obj);
}
+
+ if (bdrv_iostatus_is_enabled(bs)) {
+ qdict_put(bs_dict, "io-status",
+ qstring_from_str(io_status_name[bs->iostatus]));
+ }
+
qlist_append_obj(bs_list, bs_obj);
}
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 1fbda8c..c045043 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1143,6 +1143,9 @@ Each json-object contain the following:
"tftp", "vdi", "vmdk", "vpc", "vvfat"
- "backing_file": backing file name (json-string, optional)
- "encrypted": true if encrypted, false otherwise (json-bool)
+- "io-status": I/O operation status, only present if the device supports it
+ and the VM is configured to stop on errors (json_string,optional)
+ - Possible values: "ok", "failed", "nospace"
Example:
@@ -1150,6 +1153,7 @@ Example:
<- {
"return":[
{
+ "io-status": "ok",
"device":"ide0-hd0",
"locked":false,
"removable":false,
@@ -1162,6 +1166,7 @@ Example:
"type":"unknown"
},
{
+ "io-status": "ok",
"device":"ide1-cd0",
"locked":false,
"removable":true,
--
1.7.7.rc0.72.g4b5ea
next prev parent reply other threads:[~2011-09-01 18:38 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-01 18:37 [Qemu-devel] [PATCH v1 0/6]: block: Add I/O status support Luiz Capitulino
2011-09-01 18:37 ` [Qemu-devel] [PATCH 1/6] block: Keep track of devices' I/O status Luiz Capitulino
2011-09-01 18:37 ` [Qemu-devel] [PATCH 2/6] virtio: Support " Luiz Capitulino
2011-09-01 18:37 ` [Qemu-devel] [PATCH 3/6] ide: " Luiz Capitulino
2011-09-01 18:37 ` [Qemu-devel] [PATCH 4/6] scsi: " Luiz Capitulino
2011-09-01 18:37 ` Luiz Capitulino [this message]
2011-09-01 18:37 ` [Qemu-devel] [PATCH 6/6] HMP: Print 'io-status' information Luiz Capitulino
2011-09-09 13:07 ` [Qemu-devel] [PATCH v1 0/6]: block: Add I/O status support Luiz Capitulino
2011-09-19 13:40 ` Kevin Wolf
2011-09-19 14:09 ` Luiz Capitulino
2011-09-19 14:29 ` Kevin Wolf
2011-09-23 8:55 ` Markus Armbruster
2011-09-23 9:29 ` Kevin Wolf
2011-09-23 10:13 ` Markus Armbruster
2011-09-23 13:48 ` Luiz Capitulino
2011-09-23 14:05 ` Markus Armbruster
-- strict thread matches above, loose matches on Subject: below --
2011-09-22 18:19 [Qemu-devel] [PATCH v2 " Luiz Capitulino
2011-09-22 18:19 ` [Qemu-devel] [PATCH 5/6] QMP: query-status: Add 'io-status' key Luiz Capitulino
2011-09-26 20:43 [Qemu-devel] [PATCH v3 0/6]: block: Add I/O status support Luiz Capitulino
2011-09-26 20:43 ` [Qemu-devel] [PATCH 5/6] QMP: query-status: Add 'io-status' key Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1314902275-5240-6-git-send-email-lcapitulino@redhat.com \
--to=lcapitulino@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).