All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for 2.9 v3 00/10] block: Fixes regarding dataplane and management operations
@ 2017-04-10 15:05 Fam Zheng
  2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 01/10] block: Make bdrv_parent_drained_begin/end public Fam Zheng
                   ` (12 more replies)
  0 siblings, 13 replies; 29+ messages in thread
From: Fam Zheng @ 2017-04-10 15:05 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, qemu-block, Ed Swierk, Fam Zheng, Kevin Wolf,
	Max Reitz, Eric Blake, Stefan Hajnoczi

v3: Respin the unmerged changes from v2 and include one new fix:

    (Yes, it is a big series for the last -rc, and I personally prefer the v2
    approach for the 4-9 part of the problem, which is much more mechanical.)

    - 1, 2 are redoing previous patch 4, using bdrv_parent_drained_begin/end.
      [Kevin]
      Also fix the ordering against aio_context_release. [Stefan]
    - 3 is unchanged from patch 6 in v2.
    - 4-9 are reworking of patch 5 following Paolo's suggestion, which allowed
      better patch split.
    - 10 is finding of a latent bug, which is revealed by patch 9.

v2: - Drop patch 4 in v1. A second thought made me feel neither it nor Kevin's
      suggestion to move the BH process to bdrv_drain_recurse/BDRV_POLL_WHILE
      is a complete fix. So leave it for a separate patch.
    - Add rev-by to patches 1, 3, 4.
    - Split from patch 1 in v1 and add patch 2, for the new assertions. [Kevin]
    - Rewrite patch 5. Fix block job's co when a BDS is moved to a different
      aio context. [Kevin]
    - Add patch 6.

Crashes are reported on dataplane devices when doing snapshot and commit under
guest I/O.

With this series, Ed's test case '176' now passes:

    https://github.com/skyportsystems/qemu-1/commits/eswierk-iotests-2.9

Fam Zheng (10):
  block: Make bdrv_parent_drained_begin/end public
  block: Quiesce old aio context during bdrv_set_aio_context
  tests/block-job-txn: Don't start block job before adding to txn
  coroutine: Extract qemu_aio_coroutine_enter
  async: Introduce aio_co_enter and aio_co_enter_if_inactive
  block: Introduce bdrv_coroutine_enter and *_if_inactive
  blockjob: Use bdrv_coroutine_enter to start coroutine
  qemu-io-cmds: Use bdrv_coroutine_enter
  block: Use bdrv_coroutine_enter to start I/O coroutines
  block: Fix bdrv_co_flush early return

 block.c                    | 17 +++++++++++++++--
 block/block-backend.c      |  4 ++--
 block/io.c                 | 34 ++++++++++++++++++----------------
 blockjob.c                 |  4 ++--
 include/block/aio.h        | 18 ++++++++++++++++++
 include/block/block.h      | 27 +++++++++++++++++++++++++++
 include/qemu/coroutine.h   |  5 +++++
 qemu-io-cmds.c             |  2 +-
 tests/qemu-iotests/109.out | 10 +++++-----
 tests/test-blockjob-txn.c  |  6 +++++-
 util/async.c               | 14 +++++++++++++-
 util/qemu-coroutine.c      | 11 ++++++++---
 util/trace-events          |  2 +-
 13 files changed, 120 insertions(+), 34 deletions(-)

-- 
2.9.3

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

end of thread, other threads:[~2017-04-26  0:40 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-10 15:05 [Qemu-devel] [PATCH for 2.9 v3 00/10] block: Fixes regarding dataplane and management operations Fam Zheng
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 01/10] block: Make bdrv_parent_drained_begin/end public Fam Zheng
2017-04-11  9:02   ` Kevin Wolf
2017-04-11 10:30   ` Stefan Hajnoczi
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 02/10] block: Quiesce old aio context during bdrv_set_aio_context Fam Zheng
2017-04-11  9:02   ` Kevin Wolf
2017-04-11 10:30   ` Stefan Hajnoczi
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 03/10] tests/block-job-txn: Don't start block job before adding to txn Fam Zheng
2017-04-11  9:04   ` Kevin Wolf
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 04/10] coroutine: Extract qemu_aio_coroutine_enter Fam Zheng
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 05/10] async: Introduce aio_co_enter and aio_co_enter_if_inactive Fam Zheng
2017-04-11  9:28   ` Kevin Wolf
2017-04-11 11:07     ` Fam Zheng
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 06/10] block: Introduce bdrv_coroutine_enter and *_if_inactive Fam Zheng
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 07/10] blockjob: Use bdrv_coroutine_enter to start coroutine Fam Zheng
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 08/10] qemu-io-cmds: Use bdrv_coroutine_enter Fam Zheng
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 09/10] block: Use bdrv_coroutine_enter to start I/O coroutines Fam Zheng
2017-04-10 15:38   ` Eric Blake
2017-04-11 10:06   ` Kevin Wolf
2017-04-11 11:37     ` Fam Zheng
2017-04-11 11:43     ` Paolo Bonzini
2017-04-10 15:05 ` [Qemu-devel] [PATCH for 2.9 v3 10/10] block: Fix bdrv_co_flush early return Fam Zheng
2017-04-11  9:19   ` Paolo Bonzini
2017-04-25 15:16   ` Kevin Wolf
2017-04-26  0:39     ` Fam Zheng
2017-04-11 10:52 ` [Qemu-devel] [PATCH for 2.9 v3 00/10] block: Fixes regarding dataplane and management operations Stefan Hajnoczi
2017-04-11 11:05 ` Kevin Wolf
2017-04-11 11:55   ` Fam Zheng
2017-04-11 11:13 ` [Qemu-devel] [PATCH for 2.9 v3 11/10] block, async: Remove unused *_enter_if_inactive() Kevin Wolf

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.