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

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 (12):
  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
  block: Introduce BlockDriver.bdrv_drain callback
  qed: Implement .bdrv_drain
  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                      | 23 +++++++++++-
 block/iscsi.c                   |  9 ++---
 block/linux-aio.c               |  5 ++-
 block/nbd-client.c              | 10 +++--
 block/nfs.c                     | 17 ++++-----
 block/qed.c                     |  7 ++++
 block/sheepdog.c                | 38 ++++++++++++-------
 block/ssh.c                     |  5 ++-
 block/win32-aio.c               |  5 ++-
 blockdev.c                      | 27 +++++++++++---
 hw/block/dataplane/virtio-blk.c |  5 ++-
 hw/scsi/virtio-scsi-dataplane.c | 22 +++++++----
 include/block/aio.h             | 39 ++++++++++++++++++++
 include/block/block.h           | 24 ++++++++++++
 include/block/block_int.h       |  8 ++++
 iohandler.c                     |  3 +-
 nbd.c                           |  4 +-
 tests/test-aio.c                | 82 ++++++++++++++++++++++++++++-------------
 22 files changed, 274 insertions(+), 93 deletions(-)

-- 
2.4.3

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

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

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

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