All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luiz Capitulino <lcapitulino@redhat.com>
To: kwolf@redhat.com
Cc: fromani@redhat.com, armbru@redhat.com,
	qemu-devel <qemu-devel@nongnu.org>
Subject: [Qemu-devel] [PATCH] block: extend BLOCK_IO_ERROR with reason string
Date: Thu, 11 Sep 2014 10:25:48 -0400	[thread overview]
Message-ID: <20140911102548.3a270709@redhat.com> (raw)

BLOCK_IO_ERROR events are logged by libvirt, which helps with
post mortem analysis of guests. However, one information that
we miss today is a human readable string describing the cause
of the I/O error.

This commit adds that string it to BLOCK_IO_ERROR. Note that
this string is a debugging aid for humans, meaning that it
should not parsed by applications.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---

This patch applies on top of the following patch:

 [PATCH] block: extend BLOCK_IO_ERROR event with nospace indicator

Which has been submitted some time ago and is already applied in the
block tree.

 block.c              | 3 ++-
 qapi/block-core.json | 7 ++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/block.c b/block.c
index 460effe..3c9fb33 100644
--- a/block.c
+++ b/block.c
@@ -3648,7 +3648,8 @@ static void send_qmp_error_event(BlockDriverState *bs,
     ac = is_read ? IO_OPERATION_TYPE_READ : IO_OPERATION_TYPE_WRITE;
     qapi_event_send_block_io_error(bdrv_get_device_name(bs), ac, action,
                                    bdrv_iostatus_is_enabled(bs),
-                                   error == ENOSPC, &error_abort);
+                                   error == ENOSPC, strerror(error),
+                                   &error_abort);
 }
 
 /* This is done by device models because, while the block layer knows
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 68945c2..4064d5b 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1593,6 +1593,10 @@
 #           io-status is present, please see query-block documentation
 #           for more information (since: 2.2)
 #
+# @reason: human readable string describing the error cause.
+#          (This field is a debugging aid for humans, it should not
+#           be parsed by applications) (since: 2.2)
+#
 # Note: If action is "stop", a STOP event will eventually follow the
 # BLOCK_IO_ERROR event
 #
@@ -1600,7 +1604,8 @@
 ##
 { 'event': 'BLOCK_IO_ERROR',
   'data': { 'device': 'str', 'operation': 'IoOperationType',
-            'action': 'BlockErrorAction', '*nospace': 'bool' } }
+            'action': 'BlockErrorAction', '*nospace': 'bool',
+            'reason': 'str' } }
 
 ##
 # @BLOCK_JOB_COMPLETED
-- 
1.9.3

             reply	other threads:[~2014-09-11 14:26 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-11 14:25 Luiz Capitulino [this message]
2014-09-11 14:36 ` [Qemu-devel] [PATCH] block: extend BLOCK_IO_ERROR with reason string Kevin Wolf
2014-09-11 15:11 ` Eric Blake

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=20140911102548.3a270709@redhat.com \
    --to=lcapitulino@redhat.com \
    --cc=armbru@redhat.com \
    --cc=fromani@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.