* [Qemu-devel] [PATCH 0/3] Provide additional info through qemu-img info
@ 2013-09-05 12:05 Max Reitz
2013-09-05 12:05 ` [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI Max Reitz
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Max Reitz @ 2013-09-05 12:05 UTC (permalink / raw)
To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz
qemu-img info provides only pretty general information about an image.
For any image format, there might be specific options which cannot be
represented in a universal way; for instance, qcow2 provides the
compatibility and lazy_refcount options whose values are certainly
interesting but currently cannot be output by qemu-img info.
Therefore, this series adds an info-string field to ImageInfo resp.
info_string to BlockDriverInfo which may be used by block drivers to
hand an uninterpreted string to the user. It also adds support to
qemu-img info and qemu-io -c info to dump that field's value.
Max Reitz (3):
block: Additional info string in ImageInfo and BDI
qemu-iotests: info-string filter in _img_info
qemu-iotests: Additional info from qemu-img info
block.c | 3 +-
block/mirror.c | 6 ++--
block/qapi.c | 10 +++++-
block/qcow2.c | 6 ++++
include/block/block.h | 2 ++
qapi-schema.json | 5 ++-
qemu-img.c | 3 +-
qemu-io-cmds.c | 7 ++++-
tests/qemu-iotests/064 | 72 ++++++++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/064.out | 17 +++++++++++
tests/qemu-iotests/common.rc | 4 ++-
tests/qemu-iotests/group | 1 +
12 files changed, 128 insertions(+), 8 deletions(-)
create mode 100755 tests/qemu-iotests/064
create mode 100644 tests/qemu-iotests/064.out
--
1.8.3.1
^ permalink raw reply [flat|nested] 8+ messages in thread* [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI 2013-09-05 12:05 [Qemu-devel] [PATCH 0/3] Provide additional info through qemu-img info Max Reitz @ 2013-09-05 12:05 ` Max Reitz 2013-09-05 12:25 ` Eric Blake 2013-09-18 14:59 ` Stefan Hajnoczi 2013-09-05 12:05 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: info-string filter in _img_info Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Additional info from qemu-img info Max Reitz 2 siblings, 2 replies; 8+ messages in thread From: Max Reitz @ 2013-09-05 12:05 UTC (permalink / raw) To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz Add a string for additional information to ImageInfo and BlockDriverInfo. Also, use this string to emit the compatibility level and lazy_refcount value (on compat=1.1) for qcow2. Signed-off-by: Max Reitz <mreitz@redhat.com> --- block.c | 3 ++- block/mirror.c | 6 ++++-- block/qapi.c | 10 +++++++++- block/qcow2.c | 6 ++++++ include/block/block.h | 2 ++ qapi-schema.json | 5 ++++- qemu-img.c | 3 ++- qemu-io-cmds.c | 7 ++++++- 8 files changed, 35 insertions(+), 7 deletions(-) diff --git a/block.c b/block.c index 26639e8..9fd9f3a 100644 --- a/block.c +++ b/block.c @@ -1921,7 +1921,7 @@ void bdrv_round_to_clusters(BlockDriverState *bs, int64_t *cluster_sector_num, int *cluster_nb_sectors) { - BlockDriverInfo bdi; + BlockDriverInfo bdi = { .info_string = NULL }; if (bdrv_get_info(bs, &bdi) < 0 || bdi.cluster_size == 0) { *cluster_sector_num = sector_num; @@ -1932,6 +1932,7 @@ void bdrv_round_to_clusters(BlockDriverState *bs, *cluster_nb_sectors = QEMU_ALIGN_UP(sector_num - *cluster_sector_num + nb_sectors, c); } + g_free(bdi.info_string); } static bool tracked_request_overlaps(BdrvTrackedRequest *req, diff --git a/block/mirror.c b/block/mirror.c index 86de458..296ad54 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -295,7 +295,7 @@ static void coroutine_fn mirror_run(void *opaque) BlockDriverState *bs = s->common.bs; int64_t sector_num, end, sectors_per_chunk, length; uint64_t last_pause_ns; - BlockDriverInfo bdi; + BlockDriverInfo bdi = { .info_string = NULL }; char backing_filename[1024]; int ret = 0; int n; @@ -325,6 +325,7 @@ static void coroutine_fn mirror_run(void *opaque) s->buf_size = MAX(s->buf_size, bdi.cluster_size); s->cow_bitmap = bitmap_new(length); } + g_free(bdi.info_string); } end = s->common.len >> BDRV_SECTOR_BITS; @@ -544,13 +545,14 @@ void mirror_start(BlockDriverState *bs, BlockDriverState *target, if (granularity == 0) { /* Choose the default granularity based on the target file's cluster * size, clamped between 4k and 64k. */ - BlockDriverInfo bdi; + BlockDriverInfo bdi = { .info_string = NULL }; if (bdrv_get_info(target, &bdi) >= 0 && bdi.cluster_size != 0) { granularity = MAX(4096, bdi.cluster_size); granularity = MIN(65536, granularity); } else { granularity = 65536; } + g_free(bdi.info_string); } assert ((granularity & (granularity - 1)) == 0); diff --git a/block/qapi.c b/block/qapi.c index a4bc411..b63376c 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -110,7 +110,7 @@ void bdrv_query_image_info(BlockDriverState *bs, uint64_t total_sectors; const char *backing_filename; char backing_filename2[1024]; - BlockDriverInfo bdi; + BlockDriverInfo bdi = { .info_string = NULL }; int ret; Error *err = NULL; ImageInfo *info = g_new0(ImageInfo, 1); @@ -133,6 +133,10 @@ void bdrv_query_image_info(BlockDriverState *bs, } info->dirty_flag = bdi.is_dirty; info->has_dirty_flag = true; + if (bdi.info_string) { + info->info_string = bdi.info_string; + info->has_info_string = true; + } } backing_filename = bs->backing_file; if (backing_filename[0] != '\0') { @@ -467,4 +471,8 @@ void bdrv_image_info_dump(fprintf_function func_fprintf, void *f, func_fprintf(f, "\n"); } } + + if (info->has_info_string) { + func_fprintf(f, "additional information: %s\n", info->info_string); + } } diff --git a/block/qcow2.c b/block/qcow2.c index 4bc679a..7351ab1 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -1757,6 +1757,12 @@ static int qcow2_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) BDRVQcowState *s = bs->opaque; bdi->cluster_size = s->cluster_size; bdi->vm_state_offset = qcow2_vm_state_offset(s); + if (s->qcow_version == 2) { + bdi->info_string = g_strdup("compat=0.10"); + } else if (s->qcow_version == 3) { + bdi->info_string = g_strdup_printf("compat=1.1,lazy_refcounts=%s", + s->use_lazy_refcounts ? "on" : "off"); + } return 0; } diff --git a/include/block/block.h b/include/block/block.h index e6b391c..f8335a2 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -18,6 +18,8 @@ typedef struct BlockDriverInfo { /* offset at which the VM state can be saved (0 if not possible) */ int64_t vm_state_offset; bool is_dirty; + /* additional information; NULL if none */ + char *info_string; } BlockDriverInfo; typedef struct BlockFragInfo { diff --git a/qapi-schema.json b/qapi-schema.json index a51f7d2..15c4f02 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -238,6 +238,9 @@ # # @backing-image: #optional info of the backing image (since 1.6) # +# @info-string: #optional string supplying additional format-specific +# information (since 1.7) +# # Since: 1.3 # ## @@ -248,7 +251,7 @@ '*cluster-size': 'int', '*encrypted': 'bool', '*backing-filename': 'str', '*full-backing-filename': 'str', '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'], - '*backing-image': 'ImageInfo' } } + '*backing-image': 'ImageInfo', '*info-string': 'str' } } ## # @ImageCheck: diff --git a/qemu-img.c b/qemu-img.c index b9a848d..7081d99 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -1125,7 +1125,7 @@ static int img_convert(int argc, char **argv) uint64_t bs_sectors; uint8_t * buf = NULL; const uint8_t *buf1; - BlockDriverInfo bdi; + BlockDriverInfo bdi = { .info_string = NULL }; QEMUOptionParameter *param = NULL, *create_options = NULL; QEMUOptionParameter *out_baseimg_param; char *options = NULL; @@ -1369,6 +1369,7 @@ static int img_convert(int argc, char **argv) error_report("could not get block driver info"); goto out; } + g_free(bdi.info_string); cluster_size = bdi.cluster_size; if (cluster_size <= 0 || cluster_size > IO_BUF_SIZE) { error_report("invalid cluster size"); diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c index f91b6c4..fed0b4b 100644 --- a/qemu-io-cmds.c +++ b/qemu-io-cmds.c @@ -1677,7 +1677,7 @@ static const cmdinfo_t length_cmd = { static int info_f(BlockDriverState *bs, int argc, char **argv) { - BlockDriverInfo bdi; + BlockDriverInfo bdi = { .info_string = NULL }; char s1[64], s2[64]; int ret; @@ -1699,6 +1699,11 @@ static int info_f(BlockDriverState *bs, int argc, char **argv) printf("cluster size: %s\n", s1); printf("vm state offset: %s\n", s2); + if (bdi.info_string) { + printf("additional information: %s\n", bdi.info_string); + g_free(bdi.info_string); + } + return 0; } -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI 2013-09-05 12:05 ` [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI Max Reitz @ 2013-09-05 12:25 ` Eric Blake 2013-09-05 12:52 ` Max Reitz 2013-09-18 14:59 ` Stefan Hajnoczi 1 sibling, 1 reply; 8+ messages in thread From: Eric Blake @ 2013-09-05 12:25 UTC (permalink / raw) To: Max Reitz; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi [-- Attachment #1: Type: text/plain, Size: 1745 bytes --] On 09/05/2013 06:05 AM, Max Reitz wrote: > Add a string for additional information to ImageInfo and > BlockDriverInfo. Also, use this string to emit the compatibility level > and lazy_refcount value (on compat=1.1) for qcow2. > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > +++ b/qapi-schema.json > @@ -238,6 +238,9 @@ > # > # @backing-image: #optional info of the backing image (since 1.6) > # > +# @info-string: #optional string supplying additional format-specific > +# information (since 1.7) > +# > # Since: 1.3 > # > ## > @@ -248,7 +251,7 @@ > '*cluster-size': 'int', '*encrypted': 'bool', > '*backing-filename': 'str', '*full-backing-filename': 'str', > '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'], > - '*backing-image': 'ImageInfo' } } > + '*backing-image': 'ImageInfo', '*info-string': 'str' } } This may work for HMP, but is LOUSY for use by QMP clients. If you are passing back more than a single piece of information, you are now requiring the QMP client to do a parse of a free-form string to learn those pieces of information. I'd much rather see a full JSON schema where EVERY piece of information passed back gets its own optional field, or even where the additional information is a union type discriminated by the image, so that we have full structure of the information being returned rather than just an ad-hoc blobbed string. Please rework this so that QMP clients like libvirt can easily probe what compat mode a qcow2 image uses, without having to parse a free-form string. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 621 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI 2013-09-05 12:25 ` Eric Blake @ 2013-09-05 12:52 ` Max Reitz 0 siblings, 0 replies; 8+ messages in thread From: Max Reitz @ 2013-09-05 12:52 UTC (permalink / raw) To: Eric Blake; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi On 2013-09-05 14:25, Eric Blake wrote: > On 09/05/2013 06:05 AM, Max Reitz wrote: >> Add a string for additional information to ImageInfo and >> BlockDriverInfo. Also, use this string to emit the compatibility level >> and lazy_refcount value (on compat=1.1) for qcow2. >> >> Signed-off-by: Max Reitz <mreitz@redhat.com> >> --- >> +++ b/qapi-schema.json >> @@ -238,6 +238,9 @@ >> # >> # @backing-image: #optional info of the backing image (since 1.6) >> # >> +# @info-string: #optional string supplying additional format-specific >> +# information (since 1.7) >> +# >> # Since: 1.3 >> # >> ## >> @@ -248,7 +251,7 @@ >> '*cluster-size': 'int', '*encrypted': 'bool', >> '*backing-filename': 'str', '*full-backing-filename': 'str', >> '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'], >> - '*backing-image': 'ImageInfo' } } >> + '*backing-image': 'ImageInfo', '*info-string': 'str' } } > This may work for HMP, but is LOUSY for use by QMP clients. If you are > passing back more than a single piece of information, you are now > requiring the QMP client to do a parse of a free-form string to learn > those pieces of information. I'd much rather see a full JSON schema > where EVERY piece of information passed back gets its own optional > field, or even where the additional information is a union type > discriminated by the image, so that we have full structure of the > information being returned rather than just an ad-hoc blobbed string. > > Please rework this so that QMP clients like libvirt can easily probe > what compat mode a qcow2 image uses, without having to parse a free-form > string. > Seems very reasonable; I'll do my best. Max ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI 2013-09-05 12:05 ` [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI Max Reitz 2013-09-05 12:25 ` Eric Blake @ 2013-09-18 14:59 ` Stefan Hajnoczi 2013-09-19 7:40 ` Max Reitz 1 sibling, 1 reply; 8+ messages in thread From: Stefan Hajnoczi @ 2013-09-18 14:59 UTC (permalink / raw) To: Max Reitz; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi On Thu, Sep 05, 2013 at 02:05:13PM +0200, Max Reitz wrote: > diff --git a/block.c b/block.c > index 26639e8..9fd9f3a 100644 > --- a/block.c > +++ b/block.c > @@ -1921,7 +1921,7 @@ void bdrv_round_to_clusters(BlockDriverState *bs, > int64_t *cluster_sector_num, > int *cluster_nb_sectors) > { > - BlockDriverInfo bdi; > + BlockDriverInfo bdi = { .info_string = NULL }; > > if (bdrv_get_info(bs, &bdi) < 0 || bdi.cluster_size == 0) { > *cluster_sector_num = sector_num; > @@ -1932,6 +1932,7 @@ void bdrv_round_to_clusters(BlockDriverState *bs, > *cluster_nb_sectors = QEMU_ALIGN_UP(sector_num - *cluster_sector_num + > nb_sectors, c); > } > + g_free(bdi.info_string); > } This function is called in the I/O path. It's not appropriate to generate an options string each time this gets called :). Together with Eric's comments it seems like this change needs a different interface that is QMP-friendly and not in the I/O path. Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI 2013-09-18 14:59 ` Stefan Hajnoczi @ 2013-09-19 7:40 ` Max Reitz 0 siblings, 0 replies; 8+ messages in thread From: Max Reitz @ 2013-09-19 7:40 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: Kevin Wolf, qemu-devel, Stefan Hajnoczi On 2013-09-18 16:59, Stefan Hajnoczi wrote: > On Thu, Sep 05, 2013 at 02:05:13PM +0200, Max Reitz wrote: >> diff --git a/block.c b/block.c >> index 26639e8..9fd9f3a 100644 >> --- a/block.c >> +++ b/block.c >> @@ -1921,7 +1921,7 @@ void bdrv_round_to_clusters(BlockDriverState *bs, >> int64_t *cluster_sector_num, >> int *cluster_nb_sectors) >> { >> - BlockDriverInfo bdi; >> + BlockDriverInfo bdi = { .info_string = NULL }; >> >> if (bdrv_get_info(bs, &bdi) < 0 || bdi.cluster_size == 0) { >> *cluster_sector_num = sector_num; >> @@ -1932,6 +1932,7 @@ void bdrv_round_to_clusters(BlockDriverState *bs, >> *cluster_nb_sectors = QEMU_ALIGN_UP(sector_num - *cluster_sector_num + >> nb_sectors, c); >> } >> + g_free(bdi.info_string); >> } > This function is called in the I/O path. It's not appropriate to > generate an options string each time this gets called :). > > Together with Eric's comments it seems like this change needs a > different interface that is QMP-friendly and not in the I/O path. > > Stefan I've already sent a v2, v3 and v4 which address Eric's comment. However, your problem still remains. I think I might either add a new function for specifically requesting the format specific information (instead of generally including it in BDI) or introduce a flag parameter for bdrv_get_info which requests that BDI field to be filled (or, more generally, which will prevent bdrv_get_info from performing any relatively expensive operation). Max ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 2/3] qemu-iotests: info-string filter in _img_info 2013-09-05 12:05 [Qemu-devel] [PATCH 0/3] Provide additional info through qemu-img info Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI Max Reitz @ 2013-09-05 12:05 ` Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Additional info from qemu-img info Max Reitz 2 siblings, 0 replies; 8+ messages in thread From: Max Reitz @ 2013-09-05 12:05 UTC (permalink / raw) To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz Filter out additional information specific to the image format provided by qemu-img info in _img_info. Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/common.rc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 5e077c3..d2dae4b 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -186,7 +186,9 @@ _img_info() -e "s#$TEST_DIR#TEST_DIR#g" \ -e "s#$IMGFMT#IMGFMT#g" \ -e "/^disk size:/ D" \ - -e "/actual-size/ D" + -e "/actual-size/ D" \ + -e "/additional information:/ D" \ + -e "/info-string/ D" } _get_pids_by_name() -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH 3/3] qemu-iotests: Additional info from qemu-img info 2013-09-05 12:05 [Qemu-devel] [PATCH 0/3] Provide additional info through qemu-img info Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: info-string filter in _img_info Max Reitz @ 2013-09-05 12:05 ` Max Reitz 2 siblings, 0 replies; 8+ messages in thread From: Max Reitz @ 2013-09-05 12:05 UTC (permalink / raw) To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, Max Reitz Add a test for the additional information now provided by qemu-img info when used on qcow2 images. Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/064 | 72 ++++++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/064.out | 17 +++++++++++ tests/qemu-iotests/group | 1 + 3 files changed, 90 insertions(+) create mode 100755 tests/qemu-iotests/064 create mode 100644 tests/qemu-iotests/064.out diff --git a/tests/qemu-iotests/064 b/tests/qemu-iotests/064 new file mode 100755 index 0000000..1ab2a64 --- /dev/null +++ b/tests/qemu-iotests/064 @@ -0,0 +1,72 @@ +#!/bin/bash +# +# Test for additional information emitted by qemu-img info on qcow2 +# images +# +# Copyright (C) 2013 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +# creator +owner=mreitz@redhat.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! + +_cleanup() +{ + _cleanup_test_img +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# This tests qocw2-specific low-level functionality +_supported_fmt qcow2 +_supported_proto generic +_supported_os Linux + +IMG_SIZE=64M + +echo +echo "=== Testing qcow2 image with -o compat=0.10 ===" +echo +IMGOPTS="compat=0.10" _make_test_img $IMG_SIZE +# don't use _img_info, since that function will filter out the +# info-string +$QEMU_IMG info "$TEST_IMG" | grep "additional information" + +echo +echo "=== Testing qcow2 image with -o compat=1.1,lazy_refcounts=off ===" +echo +IMGOPTS="compat=1.1,lazy_refcounts=off" _make_test_img $IMG_SIZE +$QEMU_IMG info "$TEST_IMG" | grep "additional information" + +echo +echo "=== Testing qcow2 image with -o compat=1.1,lazy_refcounts=on ===" +echo +IMGOPTS="compat=1.1,lazy_refcounts=on" _make_test_img $IMG_SIZE +$QEMU_IMG info "$TEST_IMG" | grep "additional information" + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/064.out b/tests/qemu-iotests/064.out new file mode 100644 index 0000000..fcaa670 --- /dev/null +++ b/tests/qemu-iotests/064.out @@ -0,0 +1,17 @@ +QA output created by 064 + +=== Testing qcow2 image with -o compat=0.10 === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 +additional information: compat=0.10 + +=== Testing qcow2 image with -o compat=1.1,lazy_refcounts=off === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 +additional information: compat=1.1,lazy_refcounts=off + +=== Testing qcow2 image with -o compat=1.1,lazy_refcounts=on === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 +additional information: compat=1.1,lazy_refcounts=on +*** done diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index b696242..740cd84 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -66,3 +66,4 @@ 059 rw auto 060 rw auto 062 rw auto +064 rw auto -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-09-19 7:40 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-09-05 12:05 [Qemu-devel] [PATCH 0/3] Provide additional info through qemu-img info Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 1/3] block: Additional info string in ImageInfo and BDI Max Reitz 2013-09-05 12:25 ` Eric Blake 2013-09-05 12:52 ` Max Reitz 2013-09-18 14:59 ` Stefan Hajnoczi 2013-09-19 7:40 ` Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 2/3] qemu-iotests: info-string filter in _img_info Max Reitz 2013-09-05 12:05 ` [Qemu-devel] [PATCH 3/3] qemu-iotests: Additional info from qemu-img info Max Reitz
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.