[Qemu-devel] [PATCH v4 0/3] block/stream: get rid of the base

Andrey Shinkevich posted 3 patches 5 years ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1554747741-918964-1-git-send-email-andrey.shinkevich@virtuozzo.com
Maintainers: Stefan Hajnoczi <stefanha@redhat.com>, Wen Congyang <wencongyang2@huawei.com>, Xie Changlong <xiechanglong.d@gmail.com>, Max Reitz <mreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>, John Snow <jsnow@redhat.com>
There is a newer version of this series
block/commit.c         |  2 +-
block/io.c             | 14 +++++++++---
block/mirror.c         |  2 +-
block/replication.c    |  2 +-
block/stream.c         | 62 +++++++++++++++++++++++---------------------------
include/block/block.h  |  3 ++-
tests/qemu-iotests/245 |  4 ++--
7 files changed, 47 insertions(+), 42 deletions(-)
[Qemu-devel] [PATCH v4 0/3] block/stream: get rid of the base
Posted by Andrey Shinkevich 5 years ago
This series introduces a bottom intermediate node that eliminates the
dependency on the base that may change while stream job is running.
It happens when stream/commit parallel jobs are running on the same
backing chain. The base node of the stream job may be a top node of
the parallel commit job and can change before the stream job is
completed. We avoid that dependency by introducing the bottom node.

v4:
trace_stream_start reverted to the base.
bdrv_is_allocated_above_inclusive() deleted and the new parameter
'bool include_base' was added to the bdrv_is_allocated_above().

v3:
bottom = bdrv_find_overlay() moved into the stream_start()

v2:
The function bdrv_find_overlay() with the same functionality has been
used in the qmp_block_stream() to find a bottom node.
The algorithm in the bdrv_do_is_allocated_above() was simplified.
The commit messages were modified.

Discussed in the e-mail threads with the message IDs
<1553866154-257311-1-git-send-email-andrey.shinkevich@virtuozzo.com>
<1550762799-830661-1-git-send-email-andrey.shinkevich@virtuozzo.com>
<1554120365-39119-1-git-send-email-andrey.shinkevich@virtuozzo.com>
<1554483379-682051-1-git-send-email-andrey.shinkevich@virtuozzo.com>

Andrey Shinkevich (2):
  block: include base when checking image chain for block allocation
  block/stream: introduce a bottom node

Vladimir Sementsov-Ogievskiy (1):
  block/stream: refactor stream_run: drop goto

 block/commit.c         |  2 +-
 block/io.c             | 14 +++++++++---
 block/mirror.c         |  2 +-
 block/replication.c    |  2 +-
 block/stream.c         | 62 +++++++++++++++++++++++---------------------------
 include/block/block.h  |  3 ++-
 tests/qemu-iotests/245 |  4 ++--
 7 files changed, 47 insertions(+), 42 deletions(-)

-- 
1.8.3.1