All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alberto Garcia <berto@igalia.com>
To: qemu-devel@nongnu.org
Cc: Alberto Garcia <berto@igalia.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-block@nongnu.org
Subject: [Qemu-devel] [PATCH v8 00/11] Support streaming to an intermediate layer
Date: Tue, 23 Jun 2015 00:32:15 +0300	[thread overview]
Message-ID: <cover.1435008395.git.berto@igalia.com> (raw)

v8:
- Rebased on top of Stefan's block branch (0a35bce416)
- The loop that pauses the block jobs in bdrv_drain_all() is now split
  in two: one that iterates the list of block jobs to stop them, and
  one that iterates the root bds in order to get the aio contexts.

v7: https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg02580.html
- Rebased against the current master
- Updated bdrv_drain_all() to use the new block_job_next() API.

v6: https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg03046.html
- fix the no-op test following Max's suggestions

v5: https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg03006.html
- Fix a few typos
- Minor documentation updates
- Update test_stream_partial() to test no-ops
- New test case: test_stream_parallel()
- New test case: test_stream_overlapping()

v4: https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg01878.html
- Refactor find_block_job to use the error from bdrv_lookup_bs()
- Don't use QERR_DEVICE_IN_USE in block_job_create() since we can be
  dealing with nodes now.
- Fix @device comment in the BlockJobInfo documentation
- stream_start(): simplify the bdrv_reopen() call and use
  bdrv_get_device_or_node_name() for error messages.
- Use a different variable name for BlockDriverState *i
- Documentation fixes in docs/live-block-ops.txt
- Update iotest 30 since now test_device_not_found() returns
  GenericError
- Fix test case test_stream_partial()
- Add new test case test_stream_intermediate()
- Fix typos

v3: https://lists.gnu.org/archive/html/qemu-devel/2015-04/msg00806.html
- Keep a list of block jobs and make qmp_query_block_jobs() iterate
  over it.

v2: https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg04798.html
- The 'block-stream' command does not have a 'node-name' parameter
  anymore and reuses 'device' for that purpose.
- Block jobs can now be owned by any intermediate node, and not just
  by the ones at the root. query-block-jobs is updated to reflect that
  change.
- The 'device' parameter of all 'block-job-*' commands can now take a
  node name.
- The BlockJobInfo type and all BLOCK_JOB_* events report the node
  name in the 'device' field if the node does not have a device name.
- All intermediate nodes are blocked (and checked for blockers) during
  the streaming operation.

v1: https://lists.gnu.org/archive/html/qemu-devel/2015-02/msg04116.html

=== git backport-diff against v7 ===

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/11:[0007] [FC] 'block: keep a list of block jobs'
002/11:[----] [--] 'block: allow block jobs in any arbitrary node'
003/11:[----] [--] 'block: never cancel a streaming job without running stream_complete()'
004/11:[----] [--] 'block: Support streaming to an intermediate layer'
005/11:[----] [--] 'block: Add QMP support for streaming to an intermediate layer'
006/11:[----] [--] 'docs: Document how to stream to an intermediate layer'
007/11:[----] [--] 'qemu-iotests: fix test_stream_partial()'
008/11:[----] [--] 'qemu-iotests: add no-op streaming test'
009/11:[----] [--] 'qemu-iotests: test streaming to an intermediate layer'
010/11:[----] [--] 'qemu-iotests: test block-stream operations in parallel'
011/11:[----] [--] 'qemu-iotests: test overlapping block-stream operations'

Alberto Garcia (11):
  block: keep a list of block jobs
  block: allow block jobs in any arbitrary node
  block: never cancel a streaming job without running stream_complete()
  block: Support streaming to an intermediate layer
  block: Add QMP support for streaming to an intermediate layer
  docs: Document how to stream to an intermediate layer
  qemu-iotests: fix test_stream_partial()
  qemu-iotests: add no-op streaming test
  qemu-iotests: test streaming to an intermediate layer
  qemu-iotests: test block-stream operations in parallel
  qemu-iotests: test overlapping block-stream operations

 block.c                    |   4 +-
 block/io.c                 |  22 +++----
 block/mirror.c             |   5 +-
 block/stream.c             |  44 ++++++++++++--
 blockdev.c                 |  55 ++++++++---------
 blockjob.c                 |  31 +++++++---
 docs/live-block-ops.txt    |  31 ++++++----
 docs/qmp/qmp-events.txt    |   8 +--
 include/block/blockjob.h   |  14 +++++
 include/qapi/qmp/qerror.h  |   3 -
 qapi/block-core.json       |  30 +++++----
 tests/qemu-iotests/030     | 148 ++++++++++++++++++++++++++++++++++++++++++++-
 tests/qemu-iotests/030.out |   4 +-
 13 files changed, 307 insertions(+), 92 deletions(-)

-- 
2.1.4

             reply	other threads:[~2015-06-22 21:33 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-22 21:32 Alberto Garcia [this message]
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 01/11] block: keep a list of block jobs Alberto Garcia
2015-06-24 15:45   ` Max Reitz
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 02/11] block: allow block jobs in any arbitrary node Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 03/11] block: never cancel a streaming job without running stream_complete() Alberto Garcia
2015-10-16  8:35   ` Stefan Hajnoczi
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 04/11] block: Support streaming to an intermediate layer Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 05/11] block: Add QMP support for " Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 06/11] docs: Document how to stream " Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 07/11] qemu-iotests: fix test_stream_partial() Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 08/11] qemu-iotests: add no-op streaming test Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 09/11] qemu-iotests: test streaming to an intermediate layer Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 10/11] qemu-iotests: test block-stream operations in parallel Alberto Garcia
2015-06-22 21:32 ` [Qemu-devel] [PATCH v8 11/11] qemu-iotests: test overlapping block-stream operations Alberto Garcia
2015-06-23 15:36 ` [Qemu-devel] [PATCH v8 00/11] Support streaming to an intermediate layer Stefan Hajnoczi
2015-06-23 16:09   ` Alberto Garcia
2015-06-23 16:48     ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-06-24  8:02       ` Alberto Garcia
2015-06-24 10:02         ` Alberto Garcia
2015-06-26  8:01           ` Alberto Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1435008395.git.berto@igalia.com \
    --to=berto@igalia.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.