All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues
@ 2016-05-12 21:39 Eric Blake
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates Eric Blake
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Eric Blake @ 2016-05-12 21:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, mreitz, qemu-block

I introduced a couple of bugs in my recent qemu-io enhancements;
time to fix them back up now that the broken patches are already
part of mainline.

Eric Blake (3):
  qemu-io: Fix missing getopt() updates
  qemu-iotests: Simplify 109 with unaligned qemu-img compare
  qemu-iotests: Fix regression in 136 on aio_read invalid

 qemu-io-cmds.c             | 22 +++++++++++++++++-----
 tests/qemu-iotests/109     |  2 --
 tests/qemu-iotests/109.out |  4 ----
 tests/qemu-iotests/136     | 18 +++++++-----------
 4 files changed, 24 insertions(+), 22 deletions(-)

-- 
2.5.5

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates
  2016-05-12 21:39 [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Eric Blake
@ 2016-05-12 21:39 ` Eric Blake
  2016-05-13 11:55   ` Max Reitz
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: Simplify 109 with unaligned qemu-img compare Eric Blake
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Eric Blake @ 2016-05-12 21:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, mreitz, qemu-block

Commit 770e0e0e [*] forgot to implement 'writev -f'.  Likewise,
commit c3e001c forgot to implement 'aio_write -u -z'.

[*] does it sound "ech0e" in here? :)

Signed-off-by: Eric Blake <eblake@redhat.com>
---
 qemu-io-cmds.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c
index 4a00bc6..415be25 100644
--- a/qemu-io-cmds.c
+++ b/qemu-io-cmds.c
@@ -1150,7 +1150,7 @@ static int writev_f(BlockBackend *blk, int argc, char **argv)
     int pattern = 0xcd;
     QEMUIOVector qiov;

-    while ((c = getopt(argc, argv, "CqP:")) != -1) {
+    while ((c = getopt(argc, argv, "CfqP:")) != -1) {
         switch (c) {
         case 'C':
             Cflag = true;
@@ -1595,7 +1595,7 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv)
     int flags = 0;

     ctx->blk = blk;
-    while ((c = getopt(argc, argv, "CfqP:z")) != -1) {
+    while ((c = getopt(argc, argv, "CfqP:uz")) != -1) {
         switch (c) {
         case 'C':
             ctx->Cflag = true;
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 2/3] qemu-iotests: Simplify 109 with unaligned qemu-img compare
  2016-05-12 21:39 [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Eric Blake
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates Eric Blake
@ 2016-05-12 21:39 ` Eric Blake
  2016-05-13 12:00   ` Max Reitz
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Fix regression in 136 on aio_read invalid Eric Blake
  2016-05-13 12:06 ` [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Max Reitz
  3 siblings, 1 reply; 10+ messages in thread
From: Eric Blake @ 2016-05-12 21:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, mreitz, qemu-block

For some time now, qemu-img compare has been able to compare
unaligned images.  So we no longer need test 109's hack of
resizing to sector boundaries before invoking compare.

Signed-off-by: Eric Blake <eblake@redhat.com>

---
Note that qemu-img compare on unaligned images is still a bit
underwhelming on message quality:

$ printf abc > file1
$ printf ab > file2
$ qemu-img compare file1 file2
Content mismatch at offset 0!
$ printf 'ab\0' > file1
$ qemu-img compare file1 file2
Images are identical.

The first message should claim that the mismatch is at offset 2
(or in sector 0), rather than at offset 0; and the second message
might be wise to mention that the sizes differ even though the
contents read identically (since we pad out 0s to the end of the
sector for both raw files).  But improving that is unrelated to
this patch.
---
 tests/qemu-iotests/109     | 2 --
 tests/qemu-iotests/109.out | 4 ----
 2 files changed, 6 deletions(-)

diff --git a/tests/qemu-iotests/109 b/tests/qemu-iotests/109
index f980b0c..adf9889 100755
--- a/tests/qemu-iotests/109
+++ b/tests/qemu-iotests/109
@@ -104,8 +104,6 @@ for sample_img in empty.bochs iotest-dirtylog-10G-4M.vhdx parallels-v1 \
     $QEMU_IO -c 'read -P 0 0 64k' "$TEST_IMG" | _filter_qemu_io

     run_qemu "$TEST_IMG" "$TEST_IMG.src" "'format': 'raw'," "BLOCK_JOB_READY"
-    # qemu-img compare can't handle unaligned file sizes
-    $QEMU_IMG resize -f raw "$TEST_IMG.src" +0
     $QEMU_IMG compare -f raw -F raw "$TEST_IMG" "$TEST_IMG.src"
 done

diff --git a/tests/qemu-iotests/109.out b/tests/qemu-iotests/109.out
index 38bc073..7c797ed 100644
--- a/tests/qemu-iotests/109.out
+++ b/tests/qemu-iotests/109.out
@@ -143,7 +143,6 @@ read 65536/65536 bytes at offset 0
 {"return": {}}
 {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "src", "len": 2560, "offset": 2560, "speed": 0, "type": "mirror"}}
 {"return": [{"io-status": "ok", "device": "src", "busy": false, "len": 2560, "offset": 2560, "paused": false, "speed": 0, "ready": true, "type": "mirror"}]}
-Image resized.
 Warning: Image size mismatch!
 Images are identical.

@@ -164,7 +163,6 @@ read 65536/65536 bytes at offset 0
 {"return": {}}
 {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "src", "len": 31457280, "offset": 31457280, "speed": 0, "type": "mirror"}}
 {"return": [{"io-status": "ok", "device": "src", "busy": false, "len": 31457280, "offset": 31457280, "paused": false, "speed": 0, "ready": true, "type": "mirror"}]}
-Image resized.
 Warning: Image size mismatch!
 Images are identical.

@@ -185,7 +183,6 @@ read 65536/65536 bytes at offset 0
 {"return": {}}
 {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "src", "len": 327680, "offset": 327680, "speed": 0, "type": "mirror"}}
 {"return": [{"io-status": "ok", "device": "src", "busy": false, "len": 327680, "offset": 327680, "paused": false, "speed": 0, "ready": true, "type": "mirror"}]}
-Image resized.
 Warning: Image size mismatch!
 Images are identical.

@@ -206,7 +203,6 @@ read 65536/65536 bytes at offset 0
 {"return": {}}
 {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "src", "len": 2048, "offset": 2048, "speed": 0, "type": "mirror"}}
 {"return": [{"io-status": "ok", "device": "src", "busy": false, "len": 2048, "offset": 2048, "paused": false, "speed": 0, "ready": true, "type": "mirror"}]}
-Image resized.
 Warning: Image size mismatch!
 Images are identical.

-- 
2.5.5

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 3/3] qemu-iotests: Fix regression in 136 on aio_read invalid
  2016-05-12 21:39 [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Eric Blake
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates Eric Blake
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: Simplify 109 with unaligned qemu-img compare Eric Blake
@ 2016-05-12 21:39 ` Eric Blake
  2016-05-13 11:59   ` Max Reitz
  2016-05-13 12:06 ` [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Max Reitz
  3 siblings, 1 reply; 10+ messages in thread
From: Eric Blake @ 2016-05-12 21:39 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, mreitz, qemu-block

Commit 093ea232 removed the ability for aio_read and aio_write
to artificially inflate the invalid statistics counters for
block devices, since it no longer flags unaligned offset or
length.  Add 'aio_read -i' and 'aio_write -i' to restore
the ability, and update test 136 to use it.

Reported-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
---
 qemu-io-cmds.c         | 20 ++++++++++++++++----
 tests/qemu-iotests/136 | 18 +++++++-----------
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c
index 415be25..059b8ee 100644
--- a/qemu-io-cmds.c
+++ b/qemu-io-cmds.c
@@ -1476,6 +1476,7 @@ static void aio_read_help(void)
 " used to ensure all outstanding aio requests have been completed.\n"
 " -C, -- report statistics in a machine parsable format\n"
 " -P, -- use a pattern to verify read data\n"
+" -i, -- treat request as invalid, for exercising stats\n"
 " -v, -- dump buffer to standard output\n"
 " -q, -- quiet mode, do not show I/O statistics\n"
 "\n");
@@ -1488,7 +1489,7 @@ static const cmdinfo_t aio_read_cmd = {
     .cfunc      = aio_read_f,
     .argmin     = 2,
     .argmax     = -1,
-    .args       = "[-Cqv] [-P pattern] off len [len..]",
+    .args       = "[-Ciqv] [-P pattern] off len [len..]",
     .oneline    = "asynchronously reads a number of bytes",
     .help       = aio_read_help,
 };
@@ -1499,7 +1500,7 @@ static int aio_read_f(BlockBackend *blk, int argc, char **argv)
     struct aio_ctx *ctx = g_new0(struct aio_ctx, 1);

     ctx->blk = blk;
-    while ((c = getopt(argc, argv, "CP:qv")) != -1) {
+    while ((c = getopt(argc, argv, "CP:iqv")) != -1) {
         switch (c) {
         case 'C':
             ctx->Cflag = true;
@@ -1512,6 +1513,11 @@ static int aio_read_f(BlockBackend *blk, int argc, char **argv)
                 return 0;
             }
             break;
+        case 'i':
+            printf("injecting invalid read request\n");
+            block_acct_invalid(blk_get_stats(blk), BLOCK_ACCT_READ);
+            g_free(ctx);
+            return 0;
         case 'q':
             ctx->qflag = true;
             break;
@@ -1569,6 +1575,7 @@ static void aio_write_help(void)
 " -P, -- use different pattern to fill file\n"
 " -C, -- report statistics in a machine parsable format\n"
 " -f, -- use Force Unit Access semantics\n"
+" -i, -- treat request as invalid, for exercising stats\n"
 " -q, -- quiet mode, do not show I/O statistics\n"
 " -u, -- with -z, allow unmapping\n"
 " -z, -- write zeroes using blk_aio_write_zeroes\n"
@@ -1582,7 +1589,7 @@ static const cmdinfo_t aio_write_cmd = {
     .cfunc      = aio_write_f,
     .argmin     = 2,
     .argmax     = -1,
-    .args       = "[-Cfquz] [-P pattern] off len [len..]",
+    .args       = "[-Cfiquz] [-P pattern] off len [len..]",
     .oneline    = "asynchronously writes a number of bytes",
     .help       = aio_write_help,
 };
@@ -1595,7 +1602,7 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv)
     int flags = 0;

     ctx->blk = blk;
-    while ((c = getopt(argc, argv, "CfqP:uz")) != -1) {
+    while ((c = getopt(argc, argv, "CfiqP:uz")) != -1) {
         switch (c) {
         case 'C':
             ctx->Cflag = true;
@@ -1616,6 +1623,11 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv)
                 return 0;
             }
             break;
+        case 'i':
+            printf("injecting invalid write request\n");
+            block_acct_invalid(blk_get_stats(blk), BLOCK_ACCT_WRITE);
+            g_free(ctx);
+            return 0;
         case 'z':
             ctx->zflag = true;
             break;
diff --git a/tests/qemu-iotests/136 b/tests/qemu-iotests/136
index e8c6937..5e92c4b 100644
--- a/tests/qemu-iotests/136
+++ b/tests/qemu-iotests/136
@@ -226,18 +226,14 @@ sector = "%d"

         highest_offset = wr_ops * wr_size

-        # Two types of invalid operations: unaligned length and unaligned offset
-        for i in range(invalid_rd_ops / 2):
-            ops.append("aio_read 0 511")
+        # Block layer abstracts away unaligned length and offset, so we
+        # can't trigger an invalid op with any addresses; use qemu-io's
+        # invalid injection feature instead
+        for i in range(invalid_rd_ops):
+            ops.append("aio_read -i 0 512")

-        for i in range(invalid_rd_ops / 2, invalid_rd_ops):
-            ops.append("aio_read 13 512")
-
-        for i in range(invalid_wr_ops / 2):
-            ops.append("aio_write 0 511")
-
-        for i in range(invalid_wr_ops / 2, invalid_wr_ops):
-            ops.append("aio_write 13 512")
+        for i in range(invalid_wr_ops):
+            ops.append("aio_write -i 0 512")

         for i in range(failed_rd_ops):
             ops.append("aio_read %d 512" % bad_offset)
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates Eric Blake
@ 2016-05-13 11:55   ` Max Reitz
  2016-05-13 12:00     ` Max Reitz
  0 siblings, 1 reply; 10+ messages in thread
From: Max Reitz @ 2016-05-13 11:55 UTC (permalink / raw)
  To: Eric Blake, qemu-devel; +Cc: kwolf, qemu-block

[-- Attachment #1: Type: text/plain, Size: 1233 bytes --]

On 12.05.2016 23:39, Eric Blake wrote:
> Commit 770e0e0e [*] forgot to implement 'writev -f'.  Likewise,
> commit c3e001c forgot to implement 'aio_write -u -z'.

*c2e001c

I can fix that while applying, though.

Max

> 
> [*] does it sound "ech0e" in here? :)
> 
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
>  qemu-io-cmds.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c
> index 4a00bc6..415be25 100644
> --- a/qemu-io-cmds.c
> +++ b/qemu-io-cmds.c
> @@ -1150,7 +1150,7 @@ static int writev_f(BlockBackend *blk, int argc, char **argv)
>      int pattern = 0xcd;
>      QEMUIOVector qiov;
> 
> -    while ((c = getopt(argc, argv, "CqP:")) != -1) {
> +    while ((c = getopt(argc, argv, "CfqP:")) != -1) {
>          switch (c) {
>          case 'C':
>              Cflag = true;
> @@ -1595,7 +1595,7 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv)
>      int flags = 0;
> 
>      ctx->blk = blk;
> -    while ((c = getopt(argc, argv, "CfqP:z")) != -1) {
> +    while ((c = getopt(argc, argv, "CfqP:uz")) != -1) {
>          switch (c) {
>          case 'C':
>              ctx->Cflag = true;
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 3/3] qemu-iotests: Fix regression in 136 on aio_read invalid
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Fix regression in 136 on aio_read invalid Eric Blake
@ 2016-05-13 11:59   ` Max Reitz
  0 siblings, 0 replies; 10+ messages in thread
From: Max Reitz @ 2016-05-13 11:59 UTC (permalink / raw)
  To: Eric Blake, qemu-devel; +Cc: kwolf, qemu-block

[-- Attachment #1: Type: text/plain, Size: 5839 bytes --]

On 12.05.2016 23:39, Eric Blake wrote:
> Commit 093ea232 removed the ability for aio_read and aio_write
> to artificially inflate the invalid statistics counters for
> block devices, since it no longer flags unaligned offset or
> length.  Add 'aio_read -i' and 'aio_write -i' to restore
> the ability, and update test 136 to use it.
> 
> Reported-by: Kevin Wolf <kwolf@redhat.com>
> Signed-off-by: Eric Blake <eblake@redhat.com>
> ---
>  qemu-io-cmds.c         | 20 ++++++++++++++++----
>  tests/qemu-iotests/136 | 18 +++++++-----------
>  2 files changed, 23 insertions(+), 15 deletions(-)
> 
> diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c
> index 415be25..059b8ee 100644
> --- a/qemu-io-cmds.c
> +++ b/qemu-io-cmds.c
> @@ -1476,6 +1476,7 @@ static void aio_read_help(void)
>  " used to ensure all outstanding aio requests have been completed.\n"
>  " -C, -- report statistics in a machine parsable format\n"
>  " -P, -- use a pattern to verify read data\n"
> +" -i, -- treat request as invalid, for exercising stats\n"
>  " -v, -- dump buffer to standard output\n"
>  " -q, -- quiet mode, do not show I/O statistics\n"
>  "\n");
> @@ -1488,7 +1489,7 @@ static const cmdinfo_t aio_read_cmd = {
>      .cfunc      = aio_read_f,
>      .argmin     = 2,
>      .argmax     = -1,
> -    .args       = "[-Cqv] [-P pattern] off len [len..]",
> +    .args       = "[-Ciqv] [-P pattern] off len [len..]",
>      .oneline    = "asynchronously reads a number of bytes",
>      .help       = aio_read_help,
>  };
> @@ -1499,7 +1500,7 @@ static int aio_read_f(BlockBackend *blk, int argc, char **argv)
>      struct aio_ctx *ctx = g_new0(struct aio_ctx, 1);
> 
>      ctx->blk = blk;
> -    while ((c = getopt(argc, argv, "CP:qv")) != -1) {
> +    while ((c = getopt(argc, argv, "CP:iqv")) != -1) {
>          switch (c) {
>          case 'C':
>              ctx->Cflag = true;
> @@ -1512,6 +1513,11 @@ static int aio_read_f(BlockBackend *blk, int argc, char **argv)
>                  return 0;
>              }
>              break;
> +        case 'i':
> +            printf("injecting invalid read request\n");
> +            block_acct_invalid(blk_get_stats(blk), BLOCK_ACCT_READ);
> +            g_free(ctx);
> +            return 0;
>          case 'q':
>              ctx->qflag = true;
>              break;
> @@ -1569,6 +1575,7 @@ static void aio_write_help(void)
>  " -P, -- use different pattern to fill file\n"
>  " -C, -- report statistics in a machine parsable format\n"
>  " -f, -- use Force Unit Access semantics\n"
> +" -i, -- treat request as invalid, for exercising stats\n"
>  " -q, -- quiet mode, do not show I/O statistics\n"
>  " -u, -- with -z, allow unmapping\n"
>  " -z, -- write zeroes using blk_aio_write_zeroes\n"
> @@ -1582,7 +1589,7 @@ static const cmdinfo_t aio_write_cmd = {
>      .cfunc      = aio_write_f,
>      .argmin     = 2,
>      .argmax     = -1,
> -    .args       = "[-Cfquz] [-P pattern] off len [len..]",
> +    .args       = "[-Cfiquz] [-P pattern] off len [len..]",
>      .oneline    = "asynchronously writes a number of bytes",
>      .help       = aio_write_help,
>  };
> @@ -1595,7 +1602,7 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv)
>      int flags = 0;
> 
>      ctx->blk = blk;
> -    while ((c = getopt(argc, argv, "CfqP:uz")) != -1) {
> +    while ((c = getopt(argc, argv, "CfiqP:uz")) != -1) {
>          switch (c) {
>          case 'C':
>              ctx->Cflag = true;
> @@ -1616,6 +1623,11 @@ static int aio_write_f(BlockBackend *blk, int argc, char **argv)
>                  return 0;
>              }
>              break;
> +        case 'i':
> +            printf("injecting invalid write request\n");
> +            block_acct_invalid(blk_get_stats(blk), BLOCK_ACCT_WRITE);
> +            g_free(ctx);
> +            return 0;
>          case 'z':
>              ctx->zflag = true;
>              break;
> diff --git a/tests/qemu-iotests/136 b/tests/qemu-iotests/136
> index e8c6937..5e92c4b 100644
> --- a/tests/qemu-iotests/136
> +++ b/tests/qemu-iotests/136
> @@ -226,18 +226,14 @@ sector = "%d"
> 
>          highest_offset = wr_ops * wr_size
> 
> -        # Two types of invalid operations: unaligned length and unaligned offset
> -        for i in range(invalid_rd_ops / 2):
> -            ops.append("aio_read 0 511")
> +        # Block layer abstracts away unaligned length and offset, so we
> +        # can't trigger an invalid op with any addresses; use qemu-io's
> +        # invalid injection feature instead

This comment makes sense when seeing this patch, but it doesn't make a
lot of sense in this file after the patch has been applied.

We needed the comment to explain how the following commands are invalid
requests, but after this patch it's obvious, so it would be completely
fine to scratch the comment altogether. Or make it something short and
simple like "Generate invalid requests".

This being a comment and it just being a bit weird instead of wrong, I'd
be fine with applying the patch as-is, though, if you'd rather not send
a v2. What would you like it to be? :-)

Max

> +        for i in range(invalid_rd_ops):
> +            ops.append("aio_read -i 0 512")
> 
> -        for i in range(invalid_rd_ops / 2, invalid_rd_ops):
> -            ops.append("aio_read 13 512")
> -
> -        for i in range(invalid_wr_ops / 2):
> -            ops.append("aio_write 0 511")
> -
> -        for i in range(invalid_wr_ops / 2, invalid_wr_ops):
> -            ops.append("aio_write 13 512")
> +        for i in range(invalid_wr_ops):
> +            ops.append("aio_write -i 0 512")
> 
>          for i in range(failed_rd_ops):
>              ops.append("aio_read %d 512" % bad_offset)
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 2/3] qemu-iotests: Simplify 109 with unaligned qemu-img compare
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: Simplify 109 with unaligned qemu-img compare Eric Blake
@ 2016-05-13 12:00   ` Max Reitz
  0 siblings, 0 replies; 10+ messages in thread
From: Max Reitz @ 2016-05-13 12:00 UTC (permalink / raw)
  To: Eric Blake, qemu-devel; +Cc: kwolf, qemu-block

[-- Attachment #1: Type: text/plain, Size: 325 bytes --]

On 12.05.2016 23:39, Eric Blake wrote:
> For some time now, qemu-img compare has been able to compare
> unaligned images.  So we no longer need test 109's hack of
> resizing to sector boundaries before invoking compare.
> 
> Signed-off-by: Eric Blake <eblake@redhat.com>

Reviewed-by: Max Reitz <mreitz@redhat.com>


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates
  2016-05-13 11:55   ` Max Reitz
@ 2016-05-13 12:00     ` Max Reitz
  0 siblings, 0 replies; 10+ messages in thread
From: Max Reitz @ 2016-05-13 12:00 UTC (permalink / raw)
  To: Eric Blake, qemu-devel; +Cc: kwolf, qemu-block

[-- Attachment #1: Type: text/plain, Size: 343 bytes --]

On 13.05.2016 13:55, Max Reitz wrote:
> On 12.05.2016 23:39, Eric Blake wrote:
>> Commit 770e0e0e [*] forgot to implement 'writev -f'.  Likewise,
>> commit c3e001c forgot to implement 'aio_write -u -z'.
> 
> *c2e001c
> 
> I can fix that while applying, though.

(With that fixed:

Reviewed-by: Max Reitz <mreitz@redhat.com>

)


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues
  2016-05-12 21:39 [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Eric Blake
                   ` (2 preceding siblings ...)
  2016-05-12 21:39 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Fix regression in 136 on aio_read invalid Eric Blake
@ 2016-05-13 12:06 ` Max Reitz
  2016-05-13 13:48   ` Eric Blake
  3 siblings, 1 reply; 10+ messages in thread
From: Max Reitz @ 2016-05-13 12:06 UTC (permalink / raw)
  To: Eric Blake, qemu-devel; +Cc: kwolf, qemu-block

[-- Attachment #1: Type: text/plain, Size: 809 bytes --]

On 12.05.2016 23:39, Eric Blake wrote:
> I introduced a couple of bugs in my recent qemu-io enhancements;
> time to fix them back up now that the broken patches are already
> part of mainline.
> 
> Eric Blake (3):
>   qemu-io: Fix missing getopt() updates
>   qemu-iotests: Simplify 109 with unaligned qemu-img compare
>   qemu-iotests: Fix regression in 136 on aio_read invalid
> 
>  qemu-io-cmds.c             | 22 +++++++++++++++++-----
>  tests/qemu-iotests/109     |  2 --
>  tests/qemu-iotests/109.out |  4 ----
>  tests/qemu-iotests/136     | 18 +++++++-----------
>  4 files changed, 24 insertions(+), 22 deletions(-)

Another thing about c2e001cc: Coverity tells me we are missing a
g_free(ctx); in the "(flags & BDRV_REQ_MAY_UNMAP) && !ctx->zflag" path
in aio_write_f().

Max


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues
  2016-05-13 12:06 ` [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Max Reitz
@ 2016-05-13 13:48   ` Eric Blake
  0 siblings, 0 replies; 10+ messages in thread
From: Eric Blake @ 2016-05-13 13:48 UTC (permalink / raw)
  To: Max Reitz, qemu-devel; +Cc: kwolf, qemu-block

[-- Attachment #1: Type: text/plain, Size: 1025 bytes --]

On 05/13/2016 06:06 AM, Max Reitz wrote:
> On 12.05.2016 23:39, Eric Blake wrote:
>> I introduced a couple of bugs in my recent qemu-io enhancements;
>> time to fix them back up now that the broken patches are already
>> part of mainline.
>>
>> Eric Blake (3):
>>   qemu-io: Fix missing getopt() updates
>>   qemu-iotests: Simplify 109 with unaligned qemu-img compare
>>   qemu-iotests: Fix regression in 136 on aio_read invalid
>>
>>  qemu-io-cmds.c             | 22 +++++++++++++++++-----
>>  tests/qemu-iotests/109     |  2 --
>>  tests/qemu-iotests/109.out |  4 ----
>>  tests/qemu-iotests/136     | 18 +++++++-----------
>>  4 files changed, 24 insertions(+), 22 deletions(-)
> 
> Another thing about c2e001cc: Coverity tells me we are missing a
> g_free(ctx); in the "(flags & BDRV_REQ_MAY_UNMAP) && !ctx->zflag" path
> in aio_write_f().

Sounds like I'll be submitting a v2, then :)


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-05-13 13:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-12 21:39 [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Eric Blake
2016-05-12 21:39 ` [Qemu-devel] [PATCH 1/3] qemu-io: Fix missing getopt() updates Eric Blake
2016-05-13 11:55   ` Max Reitz
2016-05-13 12:00     ` Max Reitz
2016-05-12 21:39 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: Simplify 109 with unaligned qemu-img compare Eric Blake
2016-05-13 12:00   ` Max Reitz
2016-05-12 21:39 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Fix regression in 136 on aio_read invalid Eric Blake
2016-05-13 11:59   ` Max Reitz
2016-05-13 12:06 ` [Qemu-devel] [PATCH 0/3] Fix recent qemu-iotests issues Max Reitz
2016-05-13 13:48   ` Eric Blake

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.