On 05/25/2018 11:33 AM, Kevin Wolf wrote:
This changes the x-blockdev-create QMP command so that it doesn't block
the monitor and the main loop any more, but starts a background job that
performs the image creation.

The basic job as implemented here is all that is necessary to make image
creation asynchronous and to provide a QMP interface that can be marked
stable, but it still lacks a few features that jobs usually provide: The
job will ignore pause commands and it doesn't publish progress yet (so
both current-progress and total-progress stay at 0). These features can
be added later without breaking compatibility.

Can we at least have total-progress start at 1, and current-progress move from 0 to 1 at completion? Seeing a 0/1 => 1/1 transition is better than a divide-by-zero 0/0 ratio throughout the entire job; and libvirt doesn't want to add any more special-casing of 0/0 than it already has (where it wants to treat that as "job not yet started" rather than the more usual sense that if total==current the job is hopefully complete).


At the end of the series, the interface is declared stable and the x-
prefix is removed.

Kevin Wolf (14):
   vdi: Fix vdi_co_do_create() return value
   vhdx: Fix vhdx_co_create() return value
   job: Add error message for failing jobs
   block/create: Make x-blockdev-create a job
   qemu-iotests: Add VM.get_qmp_events_filtered()
   qemu-iotests: Add VM.qmp_log()
   qemu-iotests: Add iotests.img_info_log()
   qemu-iotests: Rewrite 206 for blockdev-create job
   qemu-iotests: Rewrite 207 for blockdev-create job
   qemu-iotests: Rewrite 210 for blockdev-create job
   qemu-iotests: Rewrite 211 for blockdev-create job
   qemu-iotests: Rewrite 212 for blockdev-create job
   qemu-iotests: Rewrite 213 for blockdev-create job
   block/create: Mark blockdev-create stable

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Reply via email to