mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
Block layer patches
- virtio-blk: use blk_io_plug_call() instead of notification BH - mirror: allow switching from background to active mode - qemu-img rebase: add compression support - Fix locking in media change monitor commands - Fix a few blockjob-related deadlocks when using iothread -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmVBTkERHGt3b2xmQHJl ZGhhdC5jb20ACgkQfwmycsiPL9ZiqRAAqvsWbblmEGJ7TBKYQK3f8QshJ66RxzbC 4eSjKHrciWNTeeIeU8r8OvFcPPoTcPXxpcmasD2gsAxG5W5N8vkPbBkW+YT4YdDJ pWJXrbJ15nILC4DmnR1ARVtvxKgv9zy5LSm5bjss1K+OSYJl/nx+ILjmfVZnYDF7 z1dP/G0JxKKm4JzAIdBE3uZS+6Q5kx/wGYlJv8EQmlH3DYfsJfy6Lthe9jfw8ijg lSqLoQ+D0lEd6Bk4XbkUqqBxFcYBWTfU6qPZoyIO94zCTwTG9yIjmoivxmmfwQZq cJUTGGZjcxpJYnvcC6P13WgcWBtcD9L2kYFVH0JyjpwcSg9cCGHMF66n9pSlyEGq DUikwVzbTwOotwzYQyM88v4ET+2+Qdcwn8pRbv9PllEczh0kAsUAEuxSgtz4NEcN bZrap/16xHFybNOKkMZcmpqxspT5NXKbDODUP0IvbSYMOYpWS983nBTxwMRpyHog 2TFDZu4DjNiPkI2BcYM5VOKk6diNowZFShcEKvoaOLX/n9EBhP0tjoH9VUn1800F myHrhF2jpIf9GhErMWB7N2W3/0aK0pqdQgbpVnd1ARDdIdYkr7G/S+50D9K80b6n 0q2E7br4S5bcsY0HQzBL9YARSayY+lVOssLoolCWEsYzijdBQmAvs5THajFKcism /idI6nlp2Vs= =RdxS -----END PGP SIGNATURE----- Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging Block layer patches - virtio-blk: use blk_io_plug_call() instead of notification BH - mirror: allow switching from background to active mode - qemu-img rebase: add compression support - Fix locking in media change monitor commands - Fix a few blockjob-related deadlocks when using iothread # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmVBTkERHGt3b2xmQHJl # ZGhhdC5jb20ACgkQfwmycsiPL9ZiqRAAqvsWbblmEGJ7TBKYQK3f8QshJ66RxzbC # 4eSjKHrciWNTeeIeU8r8OvFcPPoTcPXxpcmasD2gsAxG5W5N8vkPbBkW+YT4YdDJ # pWJXrbJ15nILC4DmnR1ARVtvxKgv9zy5LSm5bjss1K+OSYJl/nx+ILjmfVZnYDF7 # z1dP/G0JxKKm4JzAIdBE3uZS+6Q5kx/wGYlJv8EQmlH3DYfsJfy6Lthe9jfw8ijg # lSqLoQ+D0lEd6Bk4XbkUqqBxFcYBWTfU6qPZoyIO94zCTwTG9yIjmoivxmmfwQZq # cJUTGGZjcxpJYnvcC6P13WgcWBtcD9L2kYFVH0JyjpwcSg9cCGHMF66n9pSlyEGq # DUikwVzbTwOotwzYQyM88v4ET+2+Qdcwn8pRbv9PllEczh0kAsUAEuxSgtz4NEcN # bZrap/16xHFybNOKkMZcmpqxspT5NXKbDODUP0IvbSYMOYpWS983nBTxwMRpyHog # 2TFDZu4DjNiPkI2BcYM5VOKk6diNowZFShcEKvoaOLX/n9EBhP0tjoH9VUn1800F # myHrhF2jpIf9GhErMWB7N2W3/0aK0pqdQgbpVnd1ARDdIdYkr7G/S+50D9K80b6n # 0q2E7br4S5bcsY0HQzBL9YARSayY+lVOssLoolCWEsYzijdBQmAvs5THajFKcism # /idI6nlp2Vs= # =RdxS # -----END PGP SIGNATURE----- # gpg: Signature made Wed 01 Nov 2023 03:58:09 JST # gpg: using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6 # gpg: issuer "kwolf@redhat.com" # gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full] # Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6 * tag 'for-upstream' of https://repo.or.cz/qemu/kevin: (27 commits) iotests: add test for changing mirror's copy_mode mirror: return mirror-specific information upon query blockjob: query driver-specific info via a new 'query' driver method qapi/block-core: turn BlockJobInfo into a union qapi/block-core: use JobType for BlockJobInfo's type mirror: implement mirror_change method block/mirror: determine copy_to_target only once block/mirror: move dirty bitmap to filter block/mirror: set actively_synced even after the job is ready blockjob: introduce block-job-change QMP command virtio-blk: remove batch notification BH virtio: use defer_call() in virtio_irqfd_notify() util/defer-call: move defer_call() to util/ block: rename blk_io_plug_call() API to defer_call() blockdev: mirror: avoid potential deadlock when using iothread block: avoid potential deadlock during bdrv_graph_wrlock() in bdrv_close() blockjob: drop AioContext lock before calling bdrv_graph_wrlock() iotests: Test media change with iothreads block: Fix locking in media change monitor commands iotests: add tests for "qemu-img rebase" with compression ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
6c9ae1ce82
42 changed files with 1437 additions and 331 deletions
|
@ -1352,6 +1352,20 @@
|
|||
{ 'enum': 'MirrorCopyMode',
|
||||
'data': ['background', 'write-blocking'] }
|
||||
|
||||
##
|
||||
# @BlockJobInfoMirror:
|
||||
#
|
||||
# Information specific to mirror block jobs.
|
||||
#
|
||||
# @actively-synced: Whether the source is actively synced to the
|
||||
# target, i.e. same data and new writes are done synchronously to
|
||||
# both.
|
||||
#
|
||||
# Since 8.2
|
||||
##
|
||||
{ 'struct': 'BlockJobInfoMirror',
|
||||
'data': { 'actively-synced': 'bool' } }
|
||||
|
||||
##
|
||||
# @BlockJobInfo:
|
||||
#
|
||||
|
@ -1395,13 +1409,15 @@
|
|||
#
|
||||
# Since: 1.1
|
||||
##
|
||||
{ 'struct': 'BlockJobInfo',
|
||||
'data': {'type': 'str', 'device': 'str', 'len': 'int',
|
||||
{ 'union': 'BlockJobInfo',
|
||||
'base': {'type': 'JobType', 'device': 'str', 'len': 'int',
|
||||
'offset': 'int', 'busy': 'bool', 'paused': 'bool', 'speed': 'int',
|
||||
'io-status': 'BlockDeviceIoStatus', 'ready': 'bool',
|
||||
'status': 'JobStatus',
|
||||
'auto-finalize': 'bool', 'auto-dismiss': 'bool',
|
||||
'*error': 'str' } }
|
||||
'*error': 'str' },
|
||||
'discriminator': 'type',
|
||||
'data': { 'mirror': 'BlockJobInfoMirror' } }
|
||||
|
||||
##
|
||||
# @query-block-jobs:
|
||||
|
@ -3044,6 +3060,43 @@
|
|||
{ 'command': 'block-job-finalize', 'data': { 'id': 'str' },
|
||||
'allow-preconfig': true }
|
||||
|
||||
##
|
||||
# @BlockJobChangeOptionsMirror:
|
||||
#
|
||||
# @copy-mode: Switch to this copy mode. Currently, only the switch
|
||||
# from 'background' to 'write-blocking' is implemented.
|
||||
#
|
||||
# Since: 8.2
|
||||
##
|
||||
{ 'struct': 'BlockJobChangeOptionsMirror',
|
||||
'data': { 'copy-mode' : 'MirrorCopyMode' } }
|
||||
|
||||
##
|
||||
# @BlockJobChangeOptions:
|
||||
#
|
||||
# Block job options that can be changed after job creation.
|
||||
#
|
||||
# @id: The job identifier
|
||||
#
|
||||
# @type: The job type
|
||||
#
|
||||
# Since 8.2
|
||||
##
|
||||
{ 'union': 'BlockJobChangeOptions',
|
||||
'base': { 'id': 'str', 'type': 'JobType' },
|
||||
'discriminator': 'type',
|
||||
'data': { 'mirror': 'BlockJobChangeOptionsMirror' } }
|
||||
|
||||
##
|
||||
# @block-job-change:
|
||||
#
|
||||
# Change the block job's options.
|
||||
#
|
||||
# Since: 8.2
|
||||
##
|
||||
{ 'command': 'block-job-change',
|
||||
'data': 'BlockJobChangeOptions', 'boxed': true }
|
||||
|
||||
##
|
||||
# @BlockdevDiscardOptions:
|
||||
#
|
||||
|
|
|
@ -105,11 +105,13 @@
|
|||
#
|
||||
# @finalize: see @job-finalize
|
||||
#
|
||||
# @change: see @block-job-change (since 8.2)
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
{ 'enum': 'JobVerb',
|
||||
'data': ['cancel', 'pause', 'resume', 'set-speed', 'complete', 'dismiss',
|
||||
'finalize' ] }
|
||||
'finalize', 'change' ] }
|
||||
|
||||
##
|
||||
# @JOB_STATUS_CHANGE:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue