Skip to content

block: Make blockdev-create a job and stable API

Kevin Wolf qemu-devel 2 versions – Applied

Status from this message: Applied to the block branch.

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest16 patches 16 repliesApplied
  2. v114 patches 32 repliesSuperseded

Changes in v2 from the cover letter

- Made job->error == NULL iff job->ret == 0 [Max]
- Fixed a comment in qmp_blockdev_create() and added a TODO comment for AioContext locking at least [Max]
- Many small changes in the tests [Max, Jeff]

Patches in v2 Applied

#Subject and filesSizeRepliesApplied
1/16vdi: Fix vdi_co_do_create() return valueblock/vdi.c+1 -00 replies
2/16vhdx: Fix vhdx_co_create() return valueblock/vhdx.c+1 -10 replies
3/16job: Add error message for failing jobsblock/backup.c block/commit.c block/mirror.c +7 more+29 -172 replies
4/16block/create: Make x-blockdev-create a jobblock/create.c qapi/block-core.json qapi/job.json +1 more+66 -331 reply
5/16qemu-iotests: Add VM.get_qmp_events_filtered()tests/qemu-iotests/iotests.py+5 -01 reply
6/16qemu-iotests: Add VM.qmp_log()tests/qemu-iotests/iotests.py+11 -01 reply
7/16qemu-iotests: Add iotests.img_info_log()tests/qemu-iotests/iotests.py+18 -02 replies
8/16qemu-iotests: Add VM.run_job()tests/qemu-iotests/iotests.py+19 -02 replies
9/16qemu-iotests: iotests.py helper for non-file protocolstests/qemu-iotests/iotests.py+17 -02 replies
10/16qemu-iotests: Rewrite 206 for blockdev-create jobtests/qemu-iotests/206 tests/qemu-iotests/206.out tests/qemu-iotests/group+414 -5211 reply
11/16qemu-iotests: Rewrite 207 for blockdev-create jobtests/qemu-iotests/207 tests/qemu-iotests/207.out tests/qemu-iotests/group+257 -2961 reply
12/16qemu-iotests: Rewrite 210 for blockdev-create jobtests/qemu-iotests/210 tests/qemu-iotests/210.out tests/qemu-iotests/group +1 more+314 -2900 replies
13/16qemu-iotests: Rewrite 211 for blockdev-create jobtests/qemu-iotests/211 tests/qemu-iotests/211.out tests/qemu-iotests/group+229 -2870 replies
14/16qemu-iotests: Rewrite 212 for blockdev-create jobtests/qemu-iotests/212 tests/qemu-iotests/212.out tests/qemu-iotests/group+295 -3810 replies
15/16qemu-iotests: Rewrite 213 for blockdev-create jobtests/qemu-iotests/213 tests/qemu-iotests/213.out tests/qemu-iotests/group+319 -4130 replies
16/16block/create: Mark blockdev-create stableblock/create.c qapi/block-core.json qapi/job.json +12 more+111 -1110 replies

Reviews trailers per patch

All 16 patches have a Reviewed-by or Acked-by.

PatchMax ReitzJeff Cody
1/16R-b R-b
2/16R-b R-b
3/16R-b R-b
4/16R-b R-b
5/16R-b R-b
6/16R-b R-b
7/16R-b R-b
8/16R-b R-b
9/16R-b R-b
10/16R-b
11/16R-b
12/16R-b R-b
13/16R-b
14/16R-b
15/16R-b
16/16R-b R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [Qemu-devel] [PATCH v2 00/16] block: Make blockdev-create a job and stable API

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.

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

v2:
- Made job->error == NULL iff job->ret == 0 [Max]
- Fixed a comment in qmp_blockdev_create() and added a TODO comment for AioContext locking at least [Max]
- Many small changes in the tests [Max, Jeff]

Kevin Wolf (16):
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: Add VM.run_job()
qemu-iotests: iotests.py helper for non-file protocols
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

 qapi/block-core.json          |  18 +-
 qapi/job.json                 |   4 +-
 include/qemu/job.h            |   7 +-
 block/backup.c                |   2 +-
 block/commit.c                |   2 +-
 block/create.c                |  67 +++--
 block/mirror.c                |   2 +-
 block/stream.c                |   2 +-
 block/vdi.c                   |   1 +
 block/vhdx.c                  |   2 +-
 job-qmp.c                     |   9 +-
 job.c                         |  16 +-
 tests/test-bdrv-drain.c       |   2 +-
 tests/test-blockjob-txn.c     |   2 +-
 tests/test-blockjob.c         |   2 +-
 tests/qemu-iotests/206        | 680 ++++++++++++++++--------------------------
 tests/qemu-iotests/206.out    | 253 +++++++++-------
 tests/qemu-iotests/207        | 440 ++++++++++++---------------
 tests/qemu-iotests/207.out    | 107 +++----
 tests/qemu-iotests/210        | 393 ++++++++++--------------
 tests/qemu-iotests/210.out    | 197 ++++++++----
 tests/qemu-iotests/211        | 381 ++++++++++-------------
 tests/qemu-iotests/211.out    | 133 +++++----
 tests/qemu-iotests/212        | 483 +++++++++++-------------------
 tests/qemu-iotests/212.out    | 191 +++++++-----
 tests/qemu-iotests/213        | 520 ++++++++++++--------------------
 tests/qemu-iotests/213.out    | 208 ++++++++-----
 tests/qemu-iotests/iotests.py |  78 +++++
 28 files changed, 1979 insertions(+), 2223 deletions(-)
Signature · 1 line
2.13.6