block: Make blockdev-create a job and stable API
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
- v2 Latest16 patches 16 repliesApplied
- 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 files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/16 | vdi: Fix vdi_co_do_create() return valueblock/ | +1 | 0 replies | |
| 2/16 | vhdx: Fix vhdx_co_create() return valueblock/ | +1 | 0 replies | |
| 3/16 | job: Add error message for failing jobsblock/ block/ block/ +7 more | +29 | 2 replies | |
| 4/16 | block/create: Make x-blockdev-create a jobblock/ qapi/ qapi/ +1 more | +66 | 1 reply | |
| 5/16 | qemu-iotests: Add VM.get_qmp_events_filtered()tests/ | +5 | 1 reply | |
| 6/16 | qemu-iotests: Add VM.qmp_log()tests/ | +11 | 1 reply | |
| 7/16 | qemu-iotests: Add iotests.img_info_log()tests/ | +18 | 2 replies | |
| 8/16 | qemu-iotests: Add VM.run_job()tests/ | +19 | 2 replies | |
| 9/16 | qemu-iotests: iotests.py helper for non-file protocolstests/ | +17 | 2 replies | |
| 10/16 | qemu-iotests: Rewrite 206 for blockdev-create jobtests/ tests/ tests/ | +414 | 1 reply | |
| 11/16 | qemu-iotests: Rewrite 207 for blockdev-create jobtests/ tests/ tests/ | +257 | 1 reply | |
| 12/16 | qemu-iotests: Rewrite 210 for blockdev-create jobtests/ tests/ tests/ +1 more | +314 | 0 replies | |
| 13/16 | qemu-iotests: Rewrite 211 for blockdev-create jobtests/ tests/ tests/ | +229 | 0 replies | |
| 14/16 | qemu-iotests: Rewrite 212 for blockdev-create jobtests/ tests/ tests/ | +295 | 0 replies | |
| 15/16 | qemu-iotests: Rewrite 213 for blockdev-create jobtests/ tests/ tests/ | +319 | 0 replies | |
| 16/16 | block/create: Mark blockdev-create stableblock/ qapi/ qapi/ +12 more | +111 | 0 replies |
Reviews trailers per patch
All 16 patches have a Reviewed-by or Acked-by.
| Patch | Max Reitz | Jeff Cody |
|---|---|---|
| 1/16 | R-b | R-b |
| 2/16 | R-b | R-b |
| 3/16 | R-b | R-b |
| 4/16 | R-b | R-b |
| 5/16 | R-b | R-b |
| 6/16 | R-b | R-b |
| 7/16 | R-b | R-b |
| 8/16 | R-b | R-b |
| 9/16 | R-b | R-b |
| 10/16 | R-b | |
| 11/16 | R-b | |
| 12/16 | R-b | R-b |
| 13/16 | R-b | |
| 14/16 | R-b | |
| 15/16 | R-b | |
| 16/16 | R-b | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
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