From: Kevin Wolf <kwolf@redhat.com>
To: Jeff Cody <jcody@redhat.com>
Cc: stefanha@redhat.com, Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/3] block: mirror - zero unallocated target sectors when zero init not present
Date: Wed, 30 Sep 2015 17:26:28 +0200 [thread overview]
Message-ID: <20150930152628.GC3989@noname.str.redhat.com> (raw)
In-Reply-To: <20150930144350.GB11943@localhost.localdomain>
Am 30.09.2015 um 16:43 hat Jeff Cody geschrieben:
> On Tue, Sep 29, 2015 at 12:52:33PM +0200, Paolo Bonzini wrote:
> >
> >
> > On 29/09/2015 11:35, Kevin Wolf wrote:
> > > The caller could be copying the backing file in the background and it
> > > may not yet be finished.
> >
> > Yes, and this is permitted (the destination file of mirroring is opened
> > with BDRV_O_NO_BACKING).
> >
> > Some more assumptions arise when block-job-complete is invoked, because
> > at this point the content must not change under the guest's feet.
> > Because block-job-complete does bdrv_open_backing_file on the
> > destination, for sync!='full' it means that either 1) the image has no
> > backing file, but it starts with the content of the backing file or 2)
> > the image's backing file is complete at the time block-job-complete is
> > invoked.
> >
> > For mode!='existing' it is always case (2), and the backing file is
> > complete all the time; for mode=='existing' the backing file could be
> > copied in the background, and case (1) could happen as well. An example
> > of case (1) is replacing sync=='full' with a "fast copy" of the backing
> > file (e.g. via btrfs's COW copies) and sync=='top'. This should be valid.
>
> One issue is that QEMU will do mode!='existing' && sync!='full' for
> drivers that do not support backing files (raw host devices, for
> instance). We could refuse to start a mirror in the case of:
>
> mode != 'existing' && sync != 'full' && !target->drv->supports_backing
>
> Alternatively, we could do the two-pass zero approach in this patch,
> except under the following conditions:
>
> sync == 'full' || (mode != 'existing' && !target->drv->supports_backing)
>
> (In the sync == 'full' case, we could also just queue all sectors, as
> Kevin suggested)
I don't think that mode == 'existing' should play any role in the
behaviour of any block job. There's no reason why doing an external
'qemu-img create' should make it do anything different compared to
images created using the monitor.
Kevin
next prev parent reply other threads:[~2015-09-30 15:26 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-28 3:29 [Qemu-devel] [PATCH 0/3] block: mirror - Write zeroes for unallocated sectors if no zero init Jeff Cody
2015-09-28 3:29 ` [Qemu-devel] [PATCH 1/3] block: allow creation of detached dirty bitmaps Jeff Cody
2015-09-28 14:41 ` Kevin Wolf
2015-09-28 15:13 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-09-28 16:38 ` Max Reitz
2015-09-28 3:29 ` [Qemu-devel] [PATCH 2/3] block: mirror - split out part of mirror_run() Jeff Cody
2015-09-28 14:17 ` Paolo Bonzini
2015-09-28 14:47 ` Kevin Wolf
2015-09-28 16:50 ` [Qemu-devel] [Qemu-block] " Max Reitz
2015-09-28 3:29 ` [Qemu-devel] [PATCH 3/3] block: mirror - zero unallocated target sectors when zero init not present Jeff Cody
2015-09-28 14:13 ` Paolo Bonzini
2015-09-28 20:31 ` Eric Blake
2015-09-29 8:10 ` Kevin Wolf
2015-09-29 8:42 ` Paolo Bonzini
2015-09-29 9:35 ` Kevin Wolf
2015-09-29 10:52 ` Paolo Bonzini
2015-09-30 14:43 ` Jeff Cody
2015-09-30 15:16 ` Paolo Bonzini
2015-09-30 15:26 ` Kevin Wolf [this message]
2015-09-30 16:02 ` Jeff Cody
2015-09-30 16:06 ` Paolo Bonzini
2015-10-01 8:23 ` Kevin Wolf
2015-09-28 21:32 ` Jeff Cody
2015-09-29 2:48 ` Eric Blake
2015-09-28 15:07 ` Kevin Wolf
2015-09-28 21:57 ` Jeff Cody
2015-09-29 8:28 ` Kevin Wolf
2015-09-28 15:10 ` Kevin Wolf
2015-09-28 21:58 ` Jeff Cody
2015-09-28 15:23 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-09-30 15:11 ` Jeff Cody
2015-09-30 15:28 ` Kevin Wolf
2015-09-28 17:32 ` Max Reitz
2015-09-29 8:39 ` Kevin Wolf
2015-09-29 14:47 ` [Qemu-devel] " Paolo Bonzini
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=20150930152628.GC3989@noname.str.redhat.com \
--to=kwolf@redhat.com \
--cc=jcody@redhat.com \
--cc=pbonzini@redhat.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 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).