[Qemu-devel] [RFC patch 0/3] block: pause block jobs for bdrv_drain_begin/end

John Snow posted 3 patches 7 years, 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170316004603.20609-1-jsnow@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
There is a newer version of this series
block/block-backend.c          | 25 ++++++++++++++++++
blockjob.c                     | 60 +++++++++++++++++++++++++++++++++---------
include/sysemu/block-backend.h |  8 ++++++
3 files changed, 81 insertions(+), 12 deletions(-)
[Qemu-devel] [RFC patch 0/3] block: pause block jobs for bdrv_drain_begin/end
Posted by John Snow 7 years, 1 month ago
Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1367369#c8

It's possible to wedge QEMU if the guest tries to reset a virtio-pci
device as QEMU is also using the drive for a blockjob. This patchset
aims to allow us to safely pause/resume jobs attached to individual
nodes in a manner similar to how bdrv_drain_all_begin/end do.

Kevin suggested a DevOps approach which I've approximated here, but
I've got a number of questions before I push the point any further.

John Snow (3):
  blockjob: add block_job_start_shim
  block-backend: add drained_begin / drained_end ops
  blockjob: add devops to blockjob backends

 block/block-backend.c          | 25 ++++++++++++++++++
 blockjob.c                     | 60 +++++++++++++++++++++++++++++++++---------
 include/sysemu/block-backend.h |  8 ++++++
 3 files changed, 81 insertions(+), 12 deletions(-)

-- 
2.9.3