[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v7 0/3] block/stream: get rid of the base
From: |
Andrey Shinkevich |
Subject: |
[Qemu-block] [PATCH v7 0/3] block/stream: get rid of the base |
Date: |
Wed, 29 May 2019 20:56:13 +0300 |
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.
v7: [resend by Andrey]
01: assert(intermediate) was inserted before the call to
bdrv_is_allocated() in the intermediate node loop of the
bdrv_is_allocated_above() as suggested by Max.
02: The change of the intermediate node loop in the stream_start() was
rolled back to its original design and the reassignment of the base
node pointer was added as Vladimir and Max suggested. The relevant
comment was amended.
v6: [resend by Vladimir]
01: improve comment in block/io.c, suggested by Alberto
v5: [resend by Vladimir]
01: use comment wording in block/io.c suggested by Alberto
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().
Andrey Shinkevich (3):
block: include base when checking image chain for block allocation
block/stream: refactor stream_run: drop goto
block/stream: introduce a bottom node
block/commit.c | 2 +-
block/io.c | 21 +++++++++++++------
block/mirror.c | 2 +-
block/replication.c | 2 +-
block/stream.c | 56 ++++++++++++++++++++++++--------------------------
include/block/block.h | 3 ++-
tests/qemu-iotests/245 | 4 ++--
7 files changed, 49 insertions(+), 41 deletions(-)
--
1.8.3.1
- [Qemu-block] [PATCH v7 0/3] block/stream: get rid of the base,
Andrey Shinkevich <=