On 06/08/2015 04:34 AM, Fam Zheng wrote: > The new optional flag defaults to true, in which case, mirror job would > check the read sectors and use sparse write if they are zero. Otherwise > data will be fully copied.
Is that a different default than in qemu 2.3? That's okay, but I need to figure out how to probe if qemu supports the new flag for libvirt to know to set it. I'm hoping Markus' work on introspection might save the day... > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > blockdev.c | 26 +++++++++++++++++++++++++- > hmp.c | 2 +- > qapi/block-core.json | 4 +++- > qmp-commands.hx | 4 +++- > 4 files changed, 32 insertions(+), 4 deletions(-) > > diff --git a/blockdev.c b/blockdev.c > index 5ad6960..3d008a2 100644 > --- a/blockdev.c > +++ b/blockdev.c > @@ -2622,6 +2622,7 @@ void qmp_drive_mirror(const char *device, const char > *target, > bool has_on_source_error, BlockdevOnError > on_source_error, > bool has_on_target_error, BlockdevOnError > on_target_error, > bool has_unmap, bool unmap, > + bool has_detect_zeroes, bool detect_zeroes, Again, as I mentioned on 1/3, I think a tri-state enum might be easier to use than two competing bools. In fact, it might be more than tri-state. What are our possibilities? 1. We want the dest to be fully allocated, regardless of the source being sparse 2. We want the dest to be as sparse as possible, regardless of the source being fully allocated (or at least being unable to tell us about holes) 3. We want the dest to mirror the sparseness of the host, but only where that is efficient (if the source reads holes, make a hole in the dest) 4. Any other modes? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature