On 08/01/20 15:31, Sergio Lopez wrote:
> This patch series includes fixes for various issues related to
> AioContext mismanagement for various blockdev-initiated actions.
>
> It also adds tests for those actions when executed on drives running
> on an IOThread AioContext.
Testing the latest addition to Patchew:
Supersedes: <20191128104129.250206-1-slp@redhat.com>
:)
Paolo
> ---
> Changelog:
>
> v6:
> - Rename the patch series.
> - Add "block/backup-top: Don't acquire context while dropping top"
> - Add "blockdev: Acquire AioContext on dirty bitmap functions"
> - Add "blockdev: Return bs to the proper context on snapshot abort"
> - Add "iotests: Test handling of AioContexts with some blockdev
> actions" (thanks Kevin Wolf)
> - Fix context release on error. (thanks Kevin Wolf)
>
> v5:
> - Include fix for iotest 141 in patch 2. (thanks Max Reitz)
> - Also fix iotest 185 and 219 in patch 2. (thanks Max Reitz)
> - Move error block after context acquisition/release, to we can use
> goto to bail out and release resources. (thanks Max Reitz)
> - Properly release old_context in qmp_blockdev_mirror. (thanks Max
> Reitz)
>
> v4:
> - Unify patches 1-4 and 5-7 to avoid producing broken interim
> states. (thanks Max Reitz)
> - Include a fix for iotest 141. (thanks Kevin Wolf)
>
> v3:
> - Rework the whole patch series to fix the issue by consolidating all
> operations in the transaction model. (thanks Kevin Wolf)
>
> v2:
> - Honor bdrv_try_set_aio_context() context acquisition requirements
> (thanks Max Reitz).
> - Release the context at drive_backup_prepare() instead of avoiding
> re-acquiring it at do_drive_baclup(). (thanks Max Reitz)
> - Convert a single patch into a two-patch series.
> ---
>
> Sergio Lopez (8):
> blockdev: fix coding style issues in drive_backup_prepare
> blockdev: unify qmp_drive_backup and drive-backup transaction paths
> blockdev: unify qmp_blockdev_backup and blockdev-backup transaction
> paths
> blockdev: honor bdrv_try_set_aio_context() context requirements
> block/backup-top: Don't acquire context while dropping top
> blockdev: Acquire AioContext on dirty bitmap functions
> blockdev: Return bs to the proper context on snapshot abort
> iotests: Test handling of AioContexts with some blockdev actions
>
> block/backup-top.c | 5 -
> block/backup.c | 3 +
> blockdev.c | 391 ++++++++++++++++++++-----------------
> tests/qemu-iotests/141.out | 2 +
> tests/qemu-iotests/185.out | 2 +
> tests/qemu-iotests/219 | 7 +-
> tests/qemu-iotests/219.out | 8 +
> tests/qemu-iotests/281 | 247 +++++++++++++++++++++++
> tests/qemu-iotests/281.out | 5 +
> tests/qemu-iotests/group | 1 +
> 10 files changed, 484 insertions(+), 187 deletions(-)
> create mode 100755 tests/qemu-iotests/281
> create mode 100644 tests/qemu-iotests/281.out
>