qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 0/6] Block layer patches
@ 2020-03-27 15:19 Kevin Wolf
  2020-03-27 15:19 ` [PULL 1/6] block/iscsi:use the flags in iscsi_open() prevent Clang warning Kevin Wolf
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit cfe68ae025f704f336d7dd3d1903ce37b445831d:

  Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-5.0-pull-request' into staging (2020-03-26 20:55:54 +0000)

are available in the Git repository at:

  git://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to df74b1d3dff80983e7a30db1346a4a05847d65fa:

  qcow2: Remove unused fields from BDRVQcow2State (2020-03-27 14:47:23 +0100)

----------------------------------------------------------------
Block layer patches:

- Fix another case of mirror block job deadlocks
- Minor fixes

----------------------------------------------------------------
Chen Qun (1):
      block/iscsi:use the flags in iscsi_open() prevent Clang warning

Kevin Wolf (3):
      Revert "mirror: Don't let an operation wait for itself"
      mirror: Wait only for in-flight operations
      qcow2: Remove unused fields from BDRVQcow2State

Minwoo Im (1):
      nvme: Print 'cqid' for nvme_del_cq

Vladimir Sementsov-Ogievskiy (1):
      block: fix bdrv_root_attach_child forget to unref child_bs

 block/qcow2.h         |  3 ---
 block.c               |  1 +
 block/iscsi.c         |  2 +-
 block/mirror.c        | 30 +++++++++++++++++-------------
 hw/block/trace-events |  2 +-
 5 files changed, 20 insertions(+), 18 deletions(-)



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

* [PULL 1/6] block/iscsi:use the flags in iscsi_open() prevent Clang warning
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
@ 2020-03-27 15:19 ` Kevin Wolf
  2020-03-27 15:19 ` [PULL 2/6] block: fix bdrv_root_attach_child forget to unref child_bs Kevin Wolf
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

From: Chen Qun <kuhn.chenqun@huawei.com>

Clang static code analyzer show warning:
  block/iscsi.c:1920:9: warning: Value stored to 'flags' is never read
        flags &= ~BDRV_O_RDWR;
        ^        ~~~~~~~~~~~~

In iscsi_allocmap_init() only checks BDRV_O_NOCACHE, which
is the same in both of flags and bs->open_flags.
We can use the flags instead bs->open_flags to prevent Clang warning.

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200311032927.35092-1-kuhn.chenqun@huawei.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/iscsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/iscsi.c b/block/iscsi.c
index 14680a436a..4e216bd8aa 100644
--- a/block/iscsi.c
+++ b/block/iscsi.c
@@ -2002,7 +2002,7 @@ static int iscsi_open(BlockDriverState *bs, QDict *options, int flags,
         iscsilun->cluster_size = iscsilun->bl.opt_unmap_gran *
             iscsilun->block_size;
         if (iscsilun->lbprz) {
-            ret = iscsi_allocmap_init(iscsilun, bs->open_flags);
+            ret = iscsi_allocmap_init(iscsilun, flags);
         }
     }
 
-- 
2.20.1



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

* [PULL 2/6] block: fix bdrv_root_attach_child forget to unref child_bs
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
  2020-03-27 15:19 ` [PULL 1/6] block/iscsi:use the flags in iscsi_open() prevent Clang warning Kevin Wolf
@ 2020-03-27 15:19 ` Kevin Wolf
  2020-03-27 15:19 ` [PULL 3/6] nvme: Print 'cqid' for nvme_del_cq Kevin Wolf
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

bdrv_root_attach_child promises to drop child_bs reference on failure.
It does it on first handled failure path, but not on the second. Fix
that.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200324155921.23822-1-vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block.c b/block.c
index af3faf664e..2e3905c99e 100644
--- a/block.c
+++ b/block.c
@@ -2617,6 +2617,7 @@ BdrvChild *bdrv_root_attach_child(BlockDriverState *child_bs,
             error_propagate(errp, local_err);
             g_free(child);
             bdrv_abort_perm_update(child_bs);
+            bdrv_unref(child_bs);
             return NULL;
         }
     }
-- 
2.20.1



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

* [PULL 3/6] nvme: Print 'cqid' for nvme_del_cq
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
  2020-03-27 15:19 ` [PULL 1/6] block/iscsi:use the flags in iscsi_open() prevent Clang warning Kevin Wolf
  2020-03-27 15:19 ` [PULL 2/6] block: fix bdrv_root_attach_child forget to unref child_bs Kevin Wolf
@ 2020-03-27 15:19 ` Kevin Wolf
  2020-03-27 15:19 ` [PULL 4/6] Revert "mirror: Don't let an operation wait for itself" Kevin Wolf
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

From: Minwoo Im <minwoo.im.dev@gmail.com>

The given argument for this trace should be cqid, not sqid.

Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
Message-Id: <20200324140646.8274-1-minwoo.im.dev@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 hw/block/trace-events | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/block/trace-events b/hw/block/trace-events
index f78939fa9d..bf6d11b58b 100644
--- a/hw/block/trace-events
+++ b/hw/block/trace-events
@@ -37,7 +37,7 @@ nvme_rw(const char *verb, uint32_t blk_count, uint64_t byte_count, uint64_t lba)
 nvme_create_sq(uint64_t addr, uint16_t sqid, uint16_t cqid, uint16_t qsize, uint16_t qflags) "create submission queue, addr=0x%"PRIx64", sqid=%"PRIu16", cqid=%"PRIu16", qsize=%"PRIu16", qflags=%"PRIu16""
 nvme_create_cq(uint64_t addr, uint16_t cqid, uint16_t vector, uint16_t size, uint16_t qflags, int ien) "create completion queue, addr=0x%"PRIx64", cqid=%"PRIu16", vector=%"PRIu16", qsize=%"PRIu16", qflags=%"PRIu16", ien=%d"
 nvme_del_sq(uint16_t qid) "deleting submission queue sqid=%"PRIu16""
-nvme_del_cq(uint16_t cqid) "deleted completion queue, sqid=%"PRIu16""
+nvme_del_cq(uint16_t cqid) "deleted completion queue, cqid=%"PRIu16""
 nvme_identify_ctrl(void) "identify controller"
 nvme_identify_ns(uint16_t ns) "identify namespace, nsid=%"PRIu16""
 nvme_identify_nslist(uint16_t ns) "identify namespace list, nsid=%"PRIu16""
-- 
2.20.1



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

* [PULL 4/6] Revert "mirror: Don't let an operation wait for itself"
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
                   ` (2 preceding siblings ...)
  2020-03-27 15:19 ` [PULL 3/6] nvme: Print 'cqid' for nvme_del_cq Kevin Wolf
@ 2020-03-27 15:19 ` Kevin Wolf
  2020-03-27 15:19 ` [PULL 5/6] mirror: Wait only for in-flight operations Kevin Wolf
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

This reverts commit 7e6c4ff792734e196c8ca82564c56b5e7c6288ca.

The fix was incomplete as it only protected against requests waiting for
themselves, but not against requests waiting for each other. We need a
different solution.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200326153628.4869-2-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/mirror.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/block/mirror.c b/block/mirror.c
index 6203e5946e..5879e63473 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -283,14 +283,11 @@ static int mirror_cow_align(MirrorBlockJob *s, int64_t *offset,
 }
 
 static inline void coroutine_fn
-mirror_wait_for_any_operation(MirrorBlockJob *s, MirrorOp *self, bool active)
+mirror_wait_for_any_operation(MirrorBlockJob *s, bool active)
 {
     MirrorOp *op;
 
     QTAILQ_FOREACH(op, &s->ops_in_flight, next) {
-        if (self == op) {
-            continue;
-        }
         /* Do not wait on pseudo ops, because it may in turn wait on
          * some other operation to start, which may in fact be the
          * caller of this function.  Since there is only one pseudo op
@@ -305,10 +302,10 @@ mirror_wait_for_any_operation(MirrorBlockJob *s, MirrorOp *self, bool active)
 }
 
 static inline void coroutine_fn
-mirror_wait_for_free_in_flight_slot(MirrorBlockJob *s, MirrorOp *self)
+mirror_wait_for_free_in_flight_slot(MirrorBlockJob *s)
 {
     /* Only non-active operations use up in-flight slots */
-    mirror_wait_for_any_operation(s, self, false);
+    mirror_wait_for_any_operation(s, false);
 }
 
 /* Perform a mirror copy operation.
@@ -351,7 +348,7 @@ static void coroutine_fn mirror_co_read(void *opaque)
 
     while (s->buf_free_count < nb_chunks) {
         trace_mirror_yield_in_flight(s, op->offset, s->in_flight);
-        mirror_wait_for_free_in_flight_slot(s, op);
+        mirror_wait_for_free_in_flight_slot(s);
     }
 
     /* Now make a QEMUIOVector taking enough granularity-sized chunks
@@ -558,7 +555,7 @@ static uint64_t coroutine_fn mirror_iteration(MirrorBlockJob *s)
 
         while (s->in_flight >= MAX_IN_FLIGHT) {
             trace_mirror_yield_in_flight(s, offset, s->in_flight);
-            mirror_wait_for_free_in_flight_slot(s, pseudo_op);
+            mirror_wait_for_free_in_flight_slot(s);
         }
 
         if (s->ret < 0) {
@@ -612,7 +609,7 @@ static void mirror_free_init(MirrorBlockJob *s)
 static void coroutine_fn mirror_wait_for_all_io(MirrorBlockJob *s)
 {
     while (s->in_flight > 0) {
-        mirror_wait_for_free_in_flight_slot(s, NULL);
+        mirror_wait_for_free_in_flight_slot(s);
     }
 }
 
@@ -810,7 +807,7 @@ static int coroutine_fn mirror_dirty_init(MirrorBlockJob *s)
             if (s->in_flight >= MAX_IN_FLIGHT) {
                 trace_mirror_yield(s, UINT64_MAX, s->buf_free_count,
                                    s->in_flight);
-                mirror_wait_for_free_in_flight_slot(s, NULL);
+                mirror_wait_for_free_in_flight_slot(s);
                 continue;
             }
 
@@ -963,7 +960,7 @@ static int coroutine_fn mirror_run(Job *job, Error **errp)
         /* Do not start passive operations while there are active
          * writes in progress */
         while (s->in_active_write_counter) {
-            mirror_wait_for_any_operation(s, NULL, true);
+            mirror_wait_for_any_operation(s, true);
         }
 
         if (s->ret < 0) {
@@ -989,7 +986,7 @@ static int coroutine_fn mirror_run(Job *job, Error **errp)
             if (s->in_flight >= MAX_IN_FLIGHT || s->buf_free_count == 0 ||
                 (cnt == 0 && s->in_flight > 0)) {
                 trace_mirror_yield(s, cnt, s->buf_free_count, s->in_flight);
-                mirror_wait_for_free_in_flight_slot(s, NULL);
+                mirror_wait_for_free_in_flight_slot(s);
                 continue;
             } else if (cnt != 0) {
                 delay_ns = mirror_iteration(s);
-- 
2.20.1



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

* [PULL 5/6] mirror: Wait only for in-flight operations
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
                   ` (3 preceding siblings ...)
  2020-03-27 15:19 ` [PULL 4/6] Revert "mirror: Don't let an operation wait for itself" Kevin Wolf
@ 2020-03-27 15:19 ` Kevin Wolf
  2020-03-27 15:19 ` [PULL 6/6] qcow2: Remove unused fields from BDRVQcow2State Kevin Wolf
  2020-03-27 17:38 ` [PULL 0/6] Block layer patches Peter Maydell
  6 siblings, 0 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

mirror_wait_for_free_in_flight_slot() just picks a random operation to
wait for. However, a MirrorOp is already in s->ops_in_flight when
mirror_co_read() waits for free slots, so if not enough slots are
immediately available, an operation can end up waiting for itself, or
two or more operations can wait for each other to complete, which
results in a hang.

Fix this by adding a flag to MirrorOp that tells us if the request is
already in flight (and therefore occupies slots that it will later
free), and picking only such operations for waiting.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1794692
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200326153628.4869-3-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/mirror.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/block/mirror.c b/block/mirror.c
index 5879e63473..c26fd9260d 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -102,6 +102,7 @@ struct MirrorOp {
 
     bool is_pseudo_op;
     bool is_active_write;
+    bool is_in_flight;
     CoQueue waiting_requests;
     Coroutine *co;
 
@@ -293,7 +294,9 @@ mirror_wait_for_any_operation(MirrorBlockJob *s, bool active)
          * caller of this function.  Since there is only one pseudo op
          * at any given time, we will always find some real operation
          * to wait on. */
-        if (!op->is_pseudo_op && op->is_active_write == active) {
+        if (!op->is_pseudo_op && op->is_in_flight &&
+            op->is_active_write == active)
+        {
             qemu_co_queue_wait(&op->waiting_requests, NULL);
             return;
         }
@@ -367,6 +370,7 @@ static void coroutine_fn mirror_co_read(void *opaque)
     /* Copy the dirty cluster.  */
     s->in_flight++;
     s->bytes_in_flight += op->bytes;
+    op->is_in_flight = true;
     trace_mirror_one_iteration(s, op->offset, op->bytes);
 
     ret = bdrv_co_preadv(s->mirror_top_bs->backing, op->offset, op->bytes,
@@ -382,6 +386,7 @@ static void coroutine_fn mirror_co_zero(void *opaque)
     op->s->in_flight++;
     op->s->bytes_in_flight += op->bytes;
     *op->bytes_handled = op->bytes;
+    op->is_in_flight = true;
 
     ret = blk_co_pwrite_zeroes(op->s->target, op->offset, op->bytes,
                                op->s->unmap ? BDRV_REQ_MAY_UNMAP : 0);
@@ -396,6 +401,7 @@ static void coroutine_fn mirror_co_discard(void *opaque)
     op->s->in_flight++;
     op->s->bytes_in_flight += op->bytes;
     *op->bytes_handled = op->bytes;
+    op->is_in_flight = true;
 
     ret = blk_co_pdiscard(op->s->target, op->offset, op->bytes);
     mirror_write_complete(op, ret);
@@ -1319,6 +1325,7 @@ static MirrorOp *coroutine_fn active_write_prepare(MirrorBlockJob *s,
         .offset             = offset,
         .bytes              = bytes,
         .is_active_write    = true,
+        .is_in_flight       = true,
     };
     qemu_co_queue_init(&op->waiting_requests);
     QTAILQ_INSERT_TAIL(&s->ops_in_flight, op, next);
-- 
2.20.1



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

* [PULL 6/6] qcow2: Remove unused fields from BDRVQcow2State
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
                   ` (4 preceding siblings ...)
  2020-03-27 15:19 ` [PULL 5/6] mirror: Wait only for in-flight operations Kevin Wolf
@ 2020-03-27 15:19 ` Kevin Wolf
  2020-03-27 17:38 ` [PULL 0/6] Block layer patches Peter Maydell
  6 siblings, 0 replies; 14+ messages in thread
From: Kevin Wolf @ 2020-03-27 15:19 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

These fields were already removed in commit c3c10f72, but then commit
b58deb34 revived them probably due to bad merge conflict resolution.
They are still unused, so remove them again.

Fixes: b58deb344ddff3b9d8b265bf73a65274767ee5f4
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200326170757.12344-1-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/qcow2.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/block/qcow2.h b/block/qcow2.h
index 0942126232..f4de0a27d5 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -301,9 +301,6 @@ typedef struct BDRVQcow2State {
     QEMUTimer *cache_clean_timer;
     unsigned cache_clean_interval;
 
-    uint8_t *cluster_cache;
-    uint8_t *cluster_data;
-    uint64_t cluster_cache_offset;
     QLIST_HEAD(, QCowL2Meta) cluster_allocs;
 
     uint64_t *refcount_table;
-- 
2.20.1



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

* Re: [PULL 0/6] Block layer patches
  2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
                   ` (5 preceding siblings ...)
  2020-03-27 15:19 ` [PULL 6/6] qcow2: Remove unused fields from BDRVQcow2State Kevin Wolf
@ 2020-03-27 17:38 ` Peter Maydell
  6 siblings, 0 replies; 14+ messages in thread
From: Peter Maydell @ 2020-03-27 17:38 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block

On Fri, 27 Mar 2020 at 15:20, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit cfe68ae025f704f336d7dd3d1903ce37b445831d:
>
>   Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-5.0-pull-request' into staging (2020-03-26 20:55:54 +0000)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to df74b1d3dff80983e7a30db1346a4a05847d65fa:
>
>   qcow2: Remove unused fields from BDRVQcow2State (2020-03-27 14:47:23 +0100)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - Fix another case of mirror block job deadlocks
> - Minor fixes


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.0
for any user-visible changes.

-- PMM


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

* Re: [PULL 0/6] Block layer patches
  2024-03-26 13:54 Kevin Wolf
@ 2024-03-26 19:46 ` Peter Maydell
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Maydell @ 2024-03-26 19:46 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: qemu-block, qemu-devel

On Tue, 26 Mar 2024 at 13:54, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 096ae430a7b5a704af4cd94dca7200d6cb069991:
>
>   Merge tag 'pull-qapi-2024-03-26' of https://repo.or.cz/qemu/armbru into staging (2024-03-26 09:50:21 +0000)
>
> are available in the Git repository at:
>
>   https://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 12d7b3bbd3333cededd3b695501d8d247239d769:
>
>   iotests: add test for stream job with an unaligned prefetch read (2024-03-26 14:21:26 +0100)
>
> ----------------------------------------------------------------
> Block layer patches
>
> - Fix crash with unaligned prefetch requests (e.g. in stream jobs)
> - vdpa-dev: Fix initialisation order to restore VDUSE compatibility
> - iotests fixes
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/9.0
for any user-visible changes.

-- PMM


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

* [PULL 0/6] Block layer patches
@ 2024-03-26 13:54 Kevin Wolf
  2024-03-26 19:46 ` Peter Maydell
  0 siblings, 1 reply; 14+ messages in thread
From: Kevin Wolf @ 2024-03-26 13:54 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit 096ae430a7b5a704af4cd94dca7200d6cb069991:

  Merge tag 'pull-qapi-2024-03-26' of https://repo.or.cz/qemu/armbru into staging (2024-03-26 09:50:21 +0000)

are available in the Git repository at:

  https://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to 12d7b3bbd3333cededd3b695501d8d247239d769:

  iotests: add test for stream job with an unaligned prefetch read (2024-03-26 14:21:26 +0100)

----------------------------------------------------------------
Block layer patches

- Fix crash with unaligned prefetch requests (e.g. in stream jobs)
- vdpa-dev: Fix initialisation order to restore VDUSE compatibility
- iotests fixes

----------------------------------------------------------------
Fiona Ebner (3):
      block-backend: fix edge case in bdrv_next() where BDS associated to BB changes
      block-backend: fix edge case in bdrv_next_cleanup() where BDS associated to BB changes
      iotests: add test for stream job with an unaligned prefetch read

Kevin Wolf (1):
      vdpa-dev: Fix initialisation order to restore VDUSE compatibility

Stefan Reiter (1):
      block/io: accept NULL qiov in bdrv_pad_request

Thomas Huth (1):
      tests/qemu-iotests: Test 157 and 227 require virtio-blk

 block/block-backend.c                              | 18 ++---
 block/io.c                                         | 33 +++++----
 hw/net/vhost_net.c                                 | 10 +++
 hw/virtio/vdpa-dev.c                               |  5 +-
 hw/virtio/vhost-vdpa.c                             | 29 +++++++-
 hw/virtio/vhost.c                                  |  8 +-
 hw/virtio/trace-events                             |  2 +-
 tests/qemu-iotests/157                             |  2 +
 tests/qemu-iotests/227                             |  2 +
 tests/qemu-iotests/tests/stream-unaligned-prefetch | 86 ++++++++++++++++++++++
 .../tests/stream-unaligned-prefetch.out            |  5 ++
 11 files changed, 167 insertions(+), 33 deletions(-)
 create mode 100755 tests/qemu-iotests/tests/stream-unaligned-prefetch
 create mode 100644 tests/qemu-iotests/tests/stream-unaligned-prefetch.out



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

* Re: [PULL 0/6] Block layer patches
  2021-02-01 19:07 Kevin Wolf
@ 2021-02-02 12:34 ` Peter Maydell
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Maydell @ 2021-02-02 12:34 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block

On Mon, 1 Feb 2021 at 19:07, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 74208cd252c5da9d867270a178799abd802b9338:
>
>   Merge remote-tracking branch 'remotes/berrange-gitlab/tags/misc-fixes-pull-request' into staging (2021-01-29 19:51:25 +0000)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 47c9af7f4c78d03986aecc9afb0aab9b19d77cb5:
>
>   iotests: Fix -makecheck output (2021-02-01 17:58:49 +0100)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - Fix double processing of nodes in bdrv_set_aio_context()
> - Fix potential hang in block export shutdown
> - iotests: Some more fixups for the 'check' rewrite
> - MAINTAINERS: Add Vladimir as co-maintainer for Block Jobs
>
> ----------------------------------------------------------------
> Kevin Wolf (1):
>       iotests: Fix -makecheck output
>
> Sergio Lopez (2):
>       block: Avoid processing BDS twice in bdrv_set_aio_context_ignore()
>       block: move blk_exp_close_all() to qemu_cleanup()
>
> Vladimir Sementsov-Ogievskiy (3):
>       MAINTAINERS: Add Vladimir as co-maintainer for Block Jobs
>       iotests/297: pylint: ignore too many statements
>       iotests: check: return 1 on failure

Fails iotest 267 on ppc64:

  TEST   iotest-qcow2: 267 [fail]
QEMU          --
"/home/pm215/qemu/build/all/tests/qemu-iotests/../../qemu-system-ppc64"
-nodefaults -display none -accel q
test
QEMU_IMG      -- "/home/pm215/qemu/build/all/tests/qemu-iotests/../../qemu-img"
QEMU_IO       --
"/home/pm215/qemu/build/all/tests/qemu-iotests/../../qemu-io" --cache
writeback --aio threads -f qcow2
QEMU_NBD      -- "/home/pm215/qemu/build/all/tests/qemu-iotests/../../qemu-nbd"
IMGFMT        -- qcow2
IMGPROTO      -- file
PLATFORM      -- Linux/ppc64 gcc1-power7.osuosl.org 3.10.0-862.14.4.el7.ppc64
TEST_DIR      -- /home/pm215/qemu/build/all/tests/qemu-iotests/scratch
SOCK_DIR      -- /tmp/tmpvthy7ogi
SOCKET_SCM_HELPER --
/home/pm215/qemu/build/all/tests/qemu-iotests/socket_scm_helper
--- /home/pm215/qemu/tests/qemu-iotests/267.out
+++ 267.out.bad
@@ -34,7 +34,7 @@
 (qemu) info snapshots
 List of snapshots present on all disks:
 ID        TAG               VM SIZE                DATE     VM CLOCK     ICOUNT
---        snap0                SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000
+--        snap0                 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000
 (qemu) loadvm snap0
 (qemu) quit

@@ -45,7 +45,7 @@
 (qemu) info snapshots
 List of snapshots present on all disks:
 ID        TAG               VM SIZE                DATE     VM CLOCK     ICOUNT
---        snap0                SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000
+--        snap0                 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000
 (qemu) loadvm snap0
 (qemu) quit

@@ -70,7 +70,7 @@
 (qemu) info snapshots
 List of snapshots present on all disks:
 ID        TAG               VM SIZE                DATE     VM CLOCK     ICOUNT
---        snap0                SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000
+--        snap0                 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000
 (qemu) loadvm snap0
 (qemu) quit

(snip a bunch of other diffs which are all the same thing)

Also, I can't apply this until the NetBSD "iotests 030 040 041 127 256
fail almost all the time" issue is fixed, because it makes that test
run fail rather than succeed-despite-the-failures.

thanks
-- PMM


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

* [PULL 0/6] Block layer patches
@ 2021-02-01 19:07 Kevin Wolf
  2021-02-02 12:34 ` Peter Maydell
  0 siblings, 1 reply; 14+ messages in thread
From: Kevin Wolf @ 2021-02-01 19:07 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit 74208cd252c5da9d867270a178799abd802b9338:

  Merge remote-tracking branch 'remotes/berrange-gitlab/tags/misc-fixes-pull-request' into staging (2021-01-29 19:51:25 +0000)

are available in the Git repository at:

  git://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to 47c9af7f4c78d03986aecc9afb0aab9b19d77cb5:

  iotests: Fix -makecheck output (2021-02-01 17:58:49 +0100)

----------------------------------------------------------------
Block layer patches:

- Fix double processing of nodes in bdrv_set_aio_context()
- Fix potential hang in block export shutdown
- iotests: Some more fixups for the 'check' rewrite
- MAINTAINERS: Add Vladimir as co-maintainer for Block Jobs

----------------------------------------------------------------
Kevin Wolf (1):
      iotests: Fix -makecheck output

Sergio Lopez (2):
      block: Avoid processing BDS twice in bdrv_set_aio_context_ignore()
      block: move blk_exp_close_all() to qemu_cleanup()

Vladimir Sementsov-Ogievskiy (3):
      MAINTAINERS: Add Vladimir as co-maintainer for Block Jobs
      iotests/297: pylint: ignore too many statements
      iotests: check: return 1 on failure

 block.c                              | 35 +++++++++++++++++++++++++++--------
 qemu-nbd.c                           |  1 +
 softmmu/runstate.c                   |  9 +++++++++
 storage-daemon/qemu-storage-daemon.c |  1 +
 tests/qemu-iotests/testrunner.py     | 10 +++++++---
 MAINTAINERS                          | 10 ++++++++++
 tests/qemu-iotests/check             |  5 ++++-
 tests/qemu-iotests/pylintrc          |  2 ++
 8 files changed, 61 insertions(+), 12 deletions(-)



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

* Re: [PULL 0/6] Block layer patches
  2020-11-03 15:26 Kevin Wolf
@ 2020-11-03 16:53 ` Peter Maydell
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Maydell @ 2020-11-03 16:53 UTC (permalink / raw)
  To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block

On Tue, 3 Nov 2020 at 15:27, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 83851c7c60c90e9fb6a23ff48076387a77bc33cd:
>
>   Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2020-10-27-v3-tag' into staging (2020-11-03 12:47:58 +0000)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to c9eb2f3e386840844bcc91e66d0a3475bc650780:
>
>   block/vvfat: Fix bad printf format specifiers (2020-11-03 16:24:56 +0100)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - iotests: Fix pylint/mypy warnings with Python 3.9
> - qmp: fix aio_poll() assertion failure on Windows
> - Some minor fixes
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.2
for any user-visible changes.

-- PMM


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

* [PULL 0/6] Block layer patches
@ 2020-11-03 15:26 Kevin Wolf
  2020-11-03 16:53 ` Peter Maydell
  0 siblings, 1 reply; 14+ messages in thread
From: Kevin Wolf @ 2020-11-03 15:26 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel

The following changes since commit 83851c7c60c90e9fb6a23ff48076387a77bc33cd:

  Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2020-10-27-v3-tag' into staging (2020-11-03 12:47:58 +0000)

are available in the Git repository at:

  git://repo.or.cz/qemu/kevin.git tags/for-upstream

for you to fetch changes up to c9eb2f3e386840844bcc91e66d0a3475bc650780:

  block/vvfat: Fix bad printf format specifiers (2020-11-03 16:24:56 +0100)

----------------------------------------------------------------
Block layer patches:

- iotests: Fix pylint/mypy warnings with Python 3.9
- qmp: fix aio_poll() assertion failure on Windows
- Some minor fixes

----------------------------------------------------------------
AlexChen (1):
      block/vvfat: Fix bad printf format specifiers

Kevin Wolf (3):
      iotests.py: Fix type check errors in wait_migration()
      iotests: Disable unsubscriptable-object in pylint
      iotests: Use Python 3 style super()

Tuguoyi (1):
      qemu-img convert: Free @sn_opts in all error cases

Volker Rümelin (1):
      qmp: fix aio_poll() assertion failure on Windows

 block/vvfat.c                 | 12 +++++++-----
 qemu-img.c                    |  2 +-
 util/aio-win32.c              |  8 +++++++-
 tests/qemu-iotests/iotests.py | 12 ++++++++----
 tests/qemu-iotests/pylintrc   |  2 ++
 5 files changed, 25 insertions(+), 11 deletions(-)



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

end of thread, other threads:[~2024-03-26 19:47 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-27 15:19 [PULL 0/6] Block layer patches Kevin Wolf
2020-03-27 15:19 ` [PULL 1/6] block/iscsi:use the flags in iscsi_open() prevent Clang warning Kevin Wolf
2020-03-27 15:19 ` [PULL 2/6] block: fix bdrv_root_attach_child forget to unref child_bs Kevin Wolf
2020-03-27 15:19 ` [PULL 3/6] nvme: Print 'cqid' for nvme_del_cq Kevin Wolf
2020-03-27 15:19 ` [PULL 4/6] Revert "mirror: Don't let an operation wait for itself" Kevin Wolf
2020-03-27 15:19 ` [PULL 5/6] mirror: Wait only for in-flight operations Kevin Wolf
2020-03-27 15:19 ` [PULL 6/6] qcow2: Remove unused fields from BDRVQcow2State Kevin Wolf
2020-03-27 17:38 ` [PULL 0/6] Block layer patches Peter Maydell
2020-11-03 15:26 Kevin Wolf
2020-11-03 16:53 ` Peter Maydell
2021-02-01 19:07 Kevin Wolf
2021-02-02 12:34 ` Peter Maydell
2024-03-26 13:54 Kevin Wolf
2024-03-26 19:46 ` Peter Maydell

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).