diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2013-02-07 17:15:04 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2013-02-22 21:21:09 +0100 |
commit | e6439d783cce2c5cdbe4f8028f0b45162b540f82 (patch) | |
tree | 5f8cfd4117e1f22852af8e8546c6146af983d2c8 | |
parent | c9fc50839863f05545caca92bb9fbead8b1c91bd (diff) |
qemu-img: add compressed clusters to BlockFragInfo
Show how many clusters are compressed. This can be used to monitor how
many compressed clusters remain and whether to recompress the image.
Suggested-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | include/block/block.h | 1 | ||||
-rw-r--r-- | qapi-schema.json | 6 | ||||
-rw-r--r-- | qemu-img.c | 7 | ||||
-rw-r--r-- | tests/qemu-iotests/044.out | 1 | ||||
-rw-r--r-- | tests/qemu-iotests/common.rc | 2 |
5 files changed, 13 insertions, 4 deletions
diff --git a/include/block/block.h b/include/block/block.h index ce61883fc9..9661f9aa46 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -24,6 +24,7 @@ typedef struct BlockFragInfo { uint64_t allocated_clusters; uint64_t total_clusters; uint64_t fragmented_clusters; + uint64_t compressed_clusters; } BlockFragInfo; typedef struct QEMUSnapshotInfo { diff --git a/qapi-schema.json b/qapi-schema.json index c20725c7f7..28b070f16b 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -279,6 +279,10 @@ # field is present if the driver for the image format # supports it # +# @compressed-clusters: #optional total number of compressed clusters, this +# field is present if the driver for the image format +# supports it +# # Since: 1.4 # ## @@ -288,7 +292,7 @@ '*image-end-offset': 'int', '*corruptions': 'int', '*leaks': 'int', '*corruptions-fixed': 'int', '*leaks-fixed': 'int', '*total-clusters': 'int', '*allocated-clusters': 'int', - '*fragmented-clusters': 'int' } } + '*fragmented-clusters': 'int', '*compressed-clusters': 'int' } } ## # @StatusInfo: diff --git a/qemu-img.c b/qemu-img.c index 0e34bf0c90..fa9b2af79d 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -428,10 +428,11 @@ static void dump_human_image_check(ImageCheck *check) if (check->total_clusters != 0 && check->allocated_clusters != 0) { printf("%" PRId64 "/%" PRId64 " = %0.2f%% allocated, " - "%0.2f%% fragmented\n", + "%0.2f%% fragmented, %0.2f%% compressed clusters\n", check->allocated_clusters, check->total_clusters, check->allocated_clusters * 100.0 / check->total_clusters, - check->fragmented_clusters * 100.0 / check->allocated_clusters); + check->fragmented_clusters * 100.0 / check->allocated_clusters, + check->compressed_clusters * 100.0 / check->allocated_clusters); } if (check->image_end_offset) { @@ -472,6 +473,8 @@ static int collect_image_check(BlockDriverState *bs, check->has_allocated_clusters = result.bfi.allocated_clusters != 0; check->fragmented_clusters = result.bfi.fragmented_clusters; check->has_fragmented_clusters = result.bfi.fragmented_clusters != 0; + check->compressed_clusters = result.bfi.compressed_clusters; + check->has_compressed_clusters = result.bfi.compressed_clusters != 0; return 0; } diff --git a/tests/qemu-iotests/044.out b/tests/qemu-iotests/044.out index 9c4867329f..5eed3f87a3 100644 --- a/tests/qemu-iotests/044.out +++ b/tests/qemu-iotests/044.out @@ -1,4 +1,5 @@ No errors were found on the image. +7292415/8391499= 86.90% allocated, 0.00% fragmented, 0.00% compressed clusters Image end offset: 4296447488 . ---------------------------------------------------------------------- diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 5ba960b09f..e522d617aa 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -162,7 +162,7 @@ _cleanup_test_img() _check_test_img() { $QEMU_IMG check "$@" -f $IMGFMT $TEST_IMG 2>&1 | \ - sed -e "/fragmented$/d" \ + sed -e '/allocated.*fragmented.*compressed clusters/d' \ -e 's/qemu-img: This image format does not support checks/No errors were found on the image./' \ -e '/Image end offset: [0-9]\+/d' } |