[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ImageInfo oddities regarding compression
From: |
Markus Armbruster |
Subject: |
ImageInfo oddities regarding compression |
Date: |
Fri, 27 Nov 2020 11:06:36 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
ImageInfo has an optional member @compressed:
##
# @ImageInfo:
[...]
# @compressed: true if the image is compressed (Since 1.7)
Doc bug: neglects to specify the default. I guess it's false.
The only user appears to be vmdk_get_extent_info(). Goes back to
v1.7.0's commits
f4c129a38a vmdk: Implment bdrv_get_specific_info
cbe82d7fb3 qapi: Add optional field 'compressed' to ImageInfo
ImageInfo also has an optional member @format-specific.
Doc bug: neglects to specify when it's present. I assume it's always
present when member @format has a value that has a non-empty variant in
@format-specific's type ImageInfoSpecific.
Format qcow2's variant is ImageInfoSpecificQCow2. It has a mandatory
member @compression-type.
##
# @Qcow2CompressionType:
#
# Compression type used in qcow2 image file
#
# @zlib: zlib compression, see <http://zlib.net/>
# @zstd: zstd compression, see <http://github.com/facebook/zstd>
#
# Since: 5.1
##
{ 'enum': 'Qcow2CompressionType',
'data': [ 'zlib', { 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
Apparently, you can't have a qcow2 image without compression. Correct?
Can you imagine a use case for "without compression"?
I fell down this (thankfully shallow) rabbit hole because we also have
{ 'enum': 'MultiFDCompression',
'data': [ 'none', 'zlib',
{ 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
I wonder whether we could merge them into a common type.