qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v7 00/10] block: Protect nested event loop with bdrv_drained_begin and bdrv_drained_end
@ 2015-10-23  3:08 Fam Zheng
  2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 01/10] aio: Add "is_external" flag for event handlers Fam Zheng
                   ` (11 more replies)
  0 siblings, 12 replies; 18+ messages in thread
From: Fam Zheng @ 2015-10-23  3:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, pbonzini, jcody, stefanha, qemu-block

v7: Exclude bdrv_drain and bdrv_qed_drain patches, they'll follow the
    bdrv_drain fix for bdrv_aio_flush.
    Fix internal snapshot clean.

v6: Add Kevin's rev-by in patches 1-3, 6-8, 10, 12.
    Add Jeff's rev-by in patches 1, 2, 6-8, 10.
    04: Fix spelling and wording in comments. [Jeff]
        Add assert at decrement. [Jeff]
    05: Fix bad rebase. [Jeff]
    09: Let blk_is_available come first. [Jeff, Kevin]
    11: Rewrite bdrv_qed_drain. [Jeff]

v5: Rebase onto Kevin's block tree.

v4: Rebase on to master so fix the "bdrv_move_feature_fields" issue.

v3: Call bdrv_drain unconditionally in bdrv_drained_begin.
    Document the internal I/O implications between bdrv_drain_begin and end.

The nested aio_poll()'s in block layer has a bug that new r/w requests from
ioeventfds and nbd exports are processed, which might break the caller's
semantics (qmp_transaction) or even pointers (bdrv_reopen).


Fam Zheng (10):
  aio: Add "is_external" flag for event handlers
  nbd: Mark fd handlers client type as "external"
  dataplane: Mark host notifiers' client type as "external"
  aio: introduce aio_{disable,enable}_external
  block: Introduce "drained begin/end" API
  block: Add "drained begin/end" for transactional external snapshot
  block: Add "drained begin/end" for transactional backup
  block: Add "drained begin/end" for transactional blockdev-backup
  block: Add "drained begin/end" for internal snapshot
  tests: Add test case for aio_disable_external

 aio-posix.c                     |  9 ++++-
 aio-win32.c                     |  8 +++-
 async.c                         |  3 +-
 block/curl.c                    | 14 ++++---
 block/io.c                      | 17 +++++++++
 block/iscsi.c                   |  9 ++---
 block/linux-aio.c               |  5 ++-
 block/nbd-client.c              | 10 +++--
 block/nfs.c                     | 17 ++++-----
 block/sheepdog.c                | 38 ++++++++++++-------
 block/ssh.c                     |  5 ++-
 block/win32-aio.c               |  5 ++-
 blockdev.c                      | 40 +++++++++++++++++---
 hw/block/dataplane/virtio-blk.c |  5 ++-
 hw/scsi/virtio-scsi-dataplane.c | 22 +++++++----
 include/block/aio.h             | 40 ++++++++++++++++++++
 include/block/block.h           | 19 ++++++++++
 include/block/block_int.h       |  2 +
 iohandler.c                     |  3 +-
 nbd.c                           |  4 +-
 tests/test-aio.c                | 82 ++++++++++++++++++++++++++++-------------
 21 files changed, 265 insertions(+), 92 deletions(-)

-- 
2.4.3

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

end of thread, other threads:[~2015-10-26  1:42 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-23  3:08 [Qemu-devel] [PATCH v7 00/10] block: Protect nested event loop with bdrv_drained_begin and bdrv_drained_end Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 01/10] aio: Add "is_external" flag for event handlers Fam Zheng
2015-10-23 14:58   ` Stefan Hajnoczi
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 02/10] nbd: Mark fd handlers client type as "external" Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 03/10] dataplane: Mark host notifiers' " Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 04/10] aio: introduce aio_{disable, enable}_external Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 05/10] block: Introduce "drained begin/end" API Fam Zheng
2015-10-23 15:13   ` Stefan Hajnoczi
2015-10-26  1:35     ` Fam Zheng
2015-10-23 15:24   ` Stefan Hajnoczi
2015-10-26  1:42     ` Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 06/10] block: Add "drained begin/end" for transactional external snapshot Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 07/10] block: Add "drained begin/end" for transactional backup Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 08/10] block: Add "drained begin/end" for transactional blockdev-backup Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 09/10] block: Add "drained begin/end" for internal snapshot Fam Zheng
2015-10-23  3:08 ` [Qemu-devel] [PATCH v7 10/10] tests: Add test case for aio_disable_external Fam Zheng
2015-10-23 11:44 ` [Qemu-devel] [PATCH v7 00/10] block: Protect nested event loop with bdrv_drained_begin and bdrv_drained_end Kevin Wolf
2015-10-23 15:21 ` Stefan Hajnoczi

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