qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v7 0/3] block/stream: get rid of the base
@ 2019-05-29 17:56 Andrey Shinkevich
  2019-05-29 17:56 ` [Qemu-devel] [PATCH v7 1/3] block: include base when checking image chain for block allocation Andrey Shinkevich
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Andrey Shinkevich @ 2019-05-29 17:56 UTC (permalink / raw)
  To: qemu-devel, qemu-block
  Cc: kwolf, fam, vsementsov, berto, wencongyang2, xiechanglong.d,
	mreitz, stefanha, andrey.shinkevich, den, jsnow

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



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

end of thread, other threads:[~2019-06-25 15:25 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-29 17:56 [Qemu-devel] [PATCH v7 0/3] block/stream: get rid of the base Andrey Shinkevich
2019-05-29 17:56 ` [Qemu-devel] [PATCH v7 1/3] block: include base when checking image chain for block allocation Andrey Shinkevich
2019-06-19 19:27   ` Max Reitz
2019-06-21  8:34     ` Vladimir Sementsov-Ogievskiy
2019-06-24  9:31     ` Andrey Shinkevich
2019-05-29 17:56 ` [Qemu-devel] [PATCH v7 2/3] block/stream: refactor stream_run: drop goto Andrey Shinkevich
2019-05-29 17:56 ` [Qemu-devel] [PATCH v7 3/3] block/stream: introduce a bottom node Andrey Shinkevich
2019-06-19 19:29 ` [Qemu-devel] [PATCH v7 0/3] block/stream: get rid of the base Max Reitz
2019-06-25 14:40   ` Andrey Shinkevich
2019-06-25 15:03     ` Max Reitz
2019-06-25 15:07       ` Andrey Shinkevich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).