From: Kevin Wolf <kwolf@redhat.com>
To: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>,
qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 13/15] block stream: add support for partial streaming
Date: Thu, 12 Jan 2012 13:42:44 +0100 [thread overview]
Message-ID: <4F0ED544.9050602@redhat.com> (raw)
In-Reply-To: <1325858501-25741-14-git-send-email-stefanha@linux.vnet.ibm.com>
Am 06.01.2012 15:01, schrieb Stefan Hajnoczi:
> From: Marcelo Tosatti <mtosatti@redhat.com>
>
> Add support for streaming data from an intermediate section of the
> image chain (see patch and documentation for details).
>
> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> ---
> block.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> block.h | 4 +++
> block/stream.c | 28 +++++++++++++++++++++---
> block_int.h | 3 +-
> blockdev.c | 11 ++++++---
> 5 files changed, 101 insertions(+), 9 deletions(-)
>
> diff --git a/block.c b/block.c
> index 9b688a0..d2143b1 100644
> --- a/block.c
> +++ b/block.c
> @@ -2263,6 +2263,70 @@ int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors,
> return data.ret;
> }
>
> +/*
> + * Given an image chain: [BASE] -> [INTER1] -> [INTER2] -> [TOP]
> + *
> + * Return true if the given sector is allocated in top or base.
> + * Return false if the given sector is allocated in intermediate images.
This description is inexact. A sector could be allocated both in base in
an intermediate image.
Also initially I thought that we not only need to check whether the
sector is allocated in BASE, but also in any parents of BASE. You don't
do this: Clusters that are completely unallocated all through the chain
are reported as allocated.
After reading all of the patch, I believe this provides the right
semantics: "Normal" image streaming would copy them into the topmost
file, but if you keep a backing file, you want to copy as little as
possible and keep using the backing file whenever possible.
So I suggest to fix the description rather than the implementation.
Maybe we should also rename the function. With this semantics it's not a
generic is_allocated function any more, but something quite specific to
streaming with a base file.
Kevin
next prev parent reply other threads:[~2012-01-12 12:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-06 14:01 [Qemu-devel] [PATCH v4 00/15] block: generic image streaming Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 01/15] coroutine: add co_sleep_ns() coroutine sleep function Stefan Hajnoczi
2012-01-12 10:13 ` Kevin Wolf
2012-01-12 10:58 ` Stefan Hajnoczi
2012-01-12 11:07 ` Paolo Bonzini
2012-01-12 13:11 ` Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 02/15] block: check bdrv_in_use() before blockdev operations Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 03/15] block: add BlockJob interface for long-running operations Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 04/15] block: add image streaming block job Stefan Hajnoczi
2012-01-11 17:18 ` Luiz Capitulino
2012-01-12 9:11 ` Stefan Hajnoczi
2012-01-12 10:59 ` Kevin Wolf
2012-01-12 11:39 ` Stefan Hajnoczi
2012-01-12 12:53 ` Kevin Wolf
2012-01-12 13:05 ` Stefan Hajnoczi
2012-01-12 13:17 ` Kevin Wolf
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 05/15] block: rate-limit streaming operations Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 06/15] qmp: add block_stream command Stefan Hajnoczi
2012-01-11 17:23 ` Luiz Capitulino
2012-01-12 9:25 ` Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 07/15] qmp: add block_job_set_speed command Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 08/15] qmp: add block_job_cancel command Stefan Hajnoczi
2012-01-20 0:02 ` Eric Blake
2012-01-20 8:30 ` Kevin Wolf
2012-01-20 12:08 ` Luiz Capitulino
2012-01-20 19:55 ` Eric Blake
2012-02-07 15:44 ` Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 09/15] qmp: add query-block-jobs Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 10/15] blockdev: make image streaming safe across hotplug Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 11/15] block: add bdrv_find_backing_image Stefan Hajnoczi
2012-01-12 12:17 ` Kevin Wolf
2012-01-12 13:01 ` Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 12/15] add QERR_BASE_ID_NOT_FOUND Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 13/15] block stream: add support for partial streaming Stefan Hajnoczi
2012-01-12 12:42 ` Kevin Wolf [this message]
2012-01-12 16:14 ` Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 14/15] add doc to describe live block operations Stefan Hajnoczi
2012-01-06 14:01 ` [Qemu-devel] [PATCH v4 15/15] test: add image streaming test cases Stefan Hajnoczi
2012-01-11 17:58 ` [Qemu-devel] [PATCH v4 00/15] block: generic image streaming Luiz Capitulino
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=4F0ED544.9050602@redhat.com \
--to=kwolf@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mtosatti@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.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 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).