From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60836) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YiQAc-00037Q-SS for qemu-devel@nongnu.org; Wed, 15 Apr 2015 12:28:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YiQAb-0002wA-MF for qemu-devel@nongnu.org; Wed, 15 Apr 2015 12:28:10 -0400 Message-ID: <552E918A.3010203@redhat.com> Date: Wed, 15 Apr 2015 18:27:54 +0200 From: Max Reitz MIME-Version: 1.0 References: In-Reply-To: Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v3 0/6] Support streaming to an intermediate layer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alberto Garcia , qemu-devel@nongnu.org Cc: Stefan Hajnoczi , qemu-block@nongnu.org On 08.04.2015 16:43, Alberto Garcia wrote: > There's only one change in this series: there's now a list of block > jobs that is updated everytime a new one is created or destroyed. > > This way we can iterate the list directly, rather than searching all > BlockDriverStates for the ones that own a block job. > > Otherwise please check the summary I wrote for the previous series, > because the rest of the changes are detailed there: > > https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg04798.html > > v3: > - 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. > > Regards, > > Berto > > Alberto Garcia (6): > 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 > > block.c | 4 +++- > block/mirror.c | 5 +++-- > block/stream.c | 47 ++++++++++++++++++++++++++++++++++++----- > blockdev.c | 53 ++++++++++++++++++++++------------------------- > blockjob.c | 30 ++++++++++++++++++++------- > docs/live-block-ops.txt | 32 +++++++++++++++++----------- > docs/qmp/qmp-events.txt | 8 +++---- > include/block/blockjob.h | 14 +++++++++++++ > include/qapi/qmp/qerror.h | 3 --- > qapi/block-core.json | 28 ++++++++++++++----------- > 10 files changed, 149 insertions(+), 75 deletions(-) The concept of the series looks good to me. Would you mind adding some test cases, though? Max