From: Luiz Capitulino <lcapitulino@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: kwolf@redhat.com, jan.kiszka@siemens.com, jdenemar@redhat.com,
qemu-devel@nongnu.org, stefanha@gmail.com
Subject: Re: [Qemu-devel] [PATCH 7/8] QMP: query-status: Add 'io-status' key
Date: Tue, 12 Jul 2011 11:56:29 -0300 [thread overview]
Message-ID: <20110712115629.1270abf7@doriath> (raw)
In-Reply-To: <m3k4bo6iuw.fsf@blackfin.pond.sub.org>
On Tue, 12 Jul 2011 09:47:19 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> Luiz Capitulino <lcapitulino@redhat.com> writes:
>
> > Contains the last I/O status for the given device. Currently this is
> > only supported by ide, scsi and virtio block devices.
> >
> > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > ---
> > block.c | 15 ++++++++++++++-
> > block.h | 2 +-
> > qmp-commands.hx | 6 ++++++
> > 3 files changed, 21 insertions(+), 2 deletions(-)
> >
> > diff --git a/block.c b/block.c
> > index cc0a34e..28df3d8 100644
> > --- a/block.c
> > +++ b/block.c
> > @@ -1720,6 +1720,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;
> > @@ -1729,15 +1735,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 }",
> > @@ -1752,6 +1759,12 @@ void bdrv_info(Monitor *mon, QObject **ret_data)
> >
> > qdict_put_obj(bs_dict, "inserted", obj);
> > }
> > +
> > + if (bs->iostatus_enabled) {
> > + qdict_put(bs_dict, "io-status",
> > + qstring_from_str(io_status_name[bs->iostatus]));
> > + }
> > +
> > qlist_append_obj(bs_list, bs_obj);
> > }
> >
> > diff --git a/block.h b/block.h
> > index 0dca1bb..0141fe6 100644
> > --- a/block.h
> > +++ b/block.h
> > @@ -51,7 +51,7 @@ typedef enum {
> > } BlockMonEventAction;
> >
> > typedef enum {
> > - BDRV_IOS_OK, BDRV_IOS_FAILED, BDRV_IOS_ENOSPC
> > + BDRV_IOS_OK, BDRV_IOS_FAILED, BDRV_IOS_ENOSPC, BDRV_IOS_MAX
> > } BlockIOStatus;
> >
> > void bdrv_iostatus_update(BlockDriverState *bs, int error);
> > diff --git a/qmp-commands.hx b/qmp-commands.hx
> > index 6b8eb0a..1746b6d 100644
> > --- a/qmp-commands.hx
> > +++ b/qmp-commands.hx
> > @@ -1082,6 +1082,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": last executed I/O operation status, only present if the device
> > + supports it (json_string, optional)
> > + - Possible values: "ok", "failed", "nospace"
> >
> > Example:
> >
> > @@ -1089,6 +1092,7 @@ Example:
> > <- {
> > "return":[
> > {
> > + "io-status": "ok",
> > "device":"ide0-hd0",
> > "locked":false,
> > "removable":false,
> > @@ -1101,12 +1105,14 @@ Example:
> > "type":"unknown"
> > },
> > {
> > + "io-status": "ok",
> > "device":"ide1-cd0",
> > "locked":false,
> > "removable":true,
> > "type":"unknown"
> > },
> > {
> > + "io-status": "ok",
> > "device":"floppy0",
> > "locked":false,
> > "removable":true,
>
> floppy doesn't support I/O status, yet the example shows "io-status":
> "ok". Are you sure it's correct?
Good catch, I did this by hand :-)
next prev parent reply other threads:[~2011-07-12 14:56 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-05 18:17 [Qemu-devel] [PATCH v1 0/8]: QMP: Thin provisioning support Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 1/8] Introduce the VMStatus type Luiz Capitulino
2011-07-05 18:33 ` Anthony Liguori
2011-07-05 18:51 ` Luiz Capitulino
2011-07-05 18:58 ` Anthony Liguori
2011-07-05 19:34 ` Luiz Capitulino
2011-07-12 7:28 ` Markus Armbruster
2011-07-12 14:25 ` Luiz Capitulino
2011-07-12 14:51 ` Kevin Wolf
2011-07-12 15:12 ` Luiz Capitulino
2011-07-12 16:03 ` Luiz Capitulino
2011-07-12 16:16 ` Kevin Wolf
2011-07-12 17:59 ` Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 2/8] QMP: query-status: Introduce 'status' key Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 3/8] block: Support to keep track of I/O status Luiz Capitulino
2011-07-12 7:45 ` Markus Armbruster
2011-07-12 8:33 ` Kevin Wolf
2011-07-12 9:12 ` Markus Armbruster
2011-07-12 14:38 ` Luiz Capitulino
2011-07-12 14:25 ` Kevin Wolf
2011-07-12 14:56 ` Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 4/8] ide: Support " Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 5/8] virtio: " Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 6/8] scsi: " Luiz Capitulino
2011-07-05 18:17 ` [Qemu-devel] [PATCH 7/8] QMP: query-status: Add 'io-status' key Luiz Capitulino
2011-07-12 7:47 ` Markus Armbruster
2011-07-12 14:56 ` Luiz Capitulino [this message]
2011-07-05 18:17 ` [Qemu-devel] [PATCH 8/8] HMP: Print 'io-status' information Luiz Capitulino
2011-07-11 17:43 ` [Qemu-devel] [PATCH v1 0/8]: QMP: Thin provisioning support 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=20110712115629.1270abf7@doriath \
--to=lcapitulino@redhat.com \
--cc=armbru@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=jdenemar@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
/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).