All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 00/15] block job API
@ 2024-03-13 15:08 Vladimir Sementsov-Ogievskiy
  2024-03-13 15:08 ` [RFC 01/15] scripts/qapi: support type-based unions Vladimir Sementsov-Ogievskiy
                   ` (14 more replies)
  0 siblings, 15 replies; 22+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2024-03-13 15:08 UTC (permalink / raw)
  To: qemu-block
  Cc: qemu-devel, jsnow, vsementsov, kwolf, hreitz, devel, eblake,
	armbru, michael.roth, pbonzini, pkrempa, f.ebner

Hi all!

The series aims to reach feature parity between job-* and block-job-*
APIs and finally deprecate block-job-* APIs.

01: new type-based unions for QAPI

02-07: rework block-job-change and add similar job-change command

08: support set-speed in new API (as an option to job-change)

09: support soft-cancelling ready mirror job in new API (as an
    option to job-complete)

10-14: prepare query-jobs to substitute query-block-jobs

15: finally, deprecate old APIs

RFC: the series are untested. I plan to move tests to using new APIs
instead of deprecated ones in v2.

Vladimir Sementsov-Ogievskiy (15):
  scripts/qapi: support type-based unions
  qapi: rename BlockJobChangeOptions to JobChangeOptions
  blockjob: block_job_change_locked(): check job type
  qapi: block-job-change: make copy-mode parameter optional
  qapi: JobChangeOptions: make type member optional and deprecated
  blockjob: move change action implementation to job from block-job
  qapi: add job-change
  qapi: job-change: support speed parameter
  qapi: job-complete: introduce no-block-replace option for mirror
  qapi: query-jobs: add information specific for job type
  job-qmp: job_query_single_locked: add assertion on job ret
  qapi: rename BlockDeviceIoStatus to IoStatus
  qapi: move IoStatus to common.json
  qapi: query-job: add block-job specific information
  qapi/block-core: derpecate block-job- APIs

 block/backup.c                              |  14 ++
 block/block-backend.c                       |  14 +-
 block/commit.c                              |  16 ++-
 block/mirror.c                              |  98 +++++++++-----
 block/monitor/block-hmp-cmds.c              |   4 +-
 block/stream.c                              |  14 ++
 blockdev.c                                  |   4 +-
 blockjob.c                                  |  39 +++---
 docs/about/deprecated.rst                   |  75 +++++++++++
 include/block/blockjob.h                    |  26 ++--
 include/block/blockjob_int.h                |   7 -
 include/qemu/job.h                          |  25 +++-
 include/sysemu/block-backend-global-state.h |   2 +-
 job-qmp.c                                   |  55 +++++++-
 job.c                                       |  35 ++++-
 qapi/block-core.json                        | 136 +++++++++++++++-----
 qapi/common.json                            |  16 +++
 qapi/job.json                               |  69 +++++++++-
 scripts/qapi/introspect.py                  |   5 +-
 scripts/qapi/schema.py                      |  50 ++++---
 scripts/qapi/types.py                       |   3 +-
 scripts/qapi/visit.py                       |  43 ++++++-
 stubs/meson.build                           |   1 +
 stubs/qapi-jobchangeoptions-mapper.c        |  13 ++
 tests/unit/test-bdrv-drain.c                |   2 +-
 tests/unit/test-block-iothread.c            |   2 +-
 tests/unit/test-blockjob.c                  |   2 +-
 27 files changed, 616 insertions(+), 154 deletions(-)
 create mode 100644 stubs/qapi-jobchangeoptions-mapper.c

-- 
2.34.1



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

end of thread, other threads:[~2024-03-28 10:57 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-13 15:08 [RFC 00/15] block job API Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 01/15] scripts/qapi: support type-based unions Vladimir Sementsov-Ogievskiy
2024-03-28  9:15   ` Markus Armbruster
2024-03-28 10:44     ` Vladimir Sementsov-Ogievskiy
2024-03-28  9:40   ` Markus Armbruster
2024-03-28 10:18     ` Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 02/15] qapi: rename BlockJobChangeOptions to JobChangeOptions Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 03/15] blockjob: block_job_change_locked(): check job type Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 04/15] qapi: block-job-change: make copy-mode parameter optional Vladimir Sementsov-Ogievskiy
2024-03-28  9:24   ` Markus Armbruster
2024-03-28 10:56     ` Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 05/15] qapi: JobChangeOptions: make type member optional and deprecated Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 06/15] blockjob: move change action implementation to job from block-job Vladimir Sementsov-Ogievskiy
2024-03-13 15:08 ` [RFC 07/15] qapi: add job-change Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 08/15] qapi: job-change: support speed parameter Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 09/15] qapi: job-complete: introduce no-block-replace option for mirror Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 10/15] qapi: query-jobs: add information specific for job type Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 11/15] job-qmp: job_query_single_locked: add assertion on job ret Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 12/15] qapi: rename BlockDeviceIoStatus to IoStatus Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 13/15] qapi: move IoStatus to common.json Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 14/15] qapi: query-job: add block-job specific information Vladimir Sementsov-Ogievskiy
2024-03-13 15:09 ` [RFC 15/15] qapi/block-core: derpecate block-job- APIs Vladimir Sementsov-Ogievskiy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.