qemu-patch-raspberry4/qapi
Denis Plotnikov 572ad9783f qcow2: introduce compression type feature
The patch adds some preparation parts for incompatible compression type
feature to qcow2 allowing the use different compression methods for
image clusters (de)compressing.

It is implied that the compression type is set on the image creation and
can be changed only later by image conversion, thus compression type
defines the only compression algorithm used for the image, and thus,
for all image clusters.

The goal of the feature is to add support of other compression methods
to qcow2. For example, ZSTD which is more effective on compression than ZLIB.

The default compression is ZLIB. Images created with ZLIB compression type
are backward compatible with older qemu versions.

Adding of the compression type breaks a number of tests because now the
compression type is reported on image creation and there are some changes
in the qcow2 header in size and offsets.

The tests are fixed in the following ways:
    * filter out compression_type for many tests
    * fix header size, feature table size and backing file offset
      affected tests: 031, 036, 061, 080
      header_size +=8: 1 byte compression type
                       7 bytes padding
      feature_table += 48: incompatible feature compression type
      backing_file_offset += 56 (8 + 48 -> header_change + feature_table_change)
    * add "compression type" for test output matching when it isn't filtered
      affected tests: 049, 060, 061, 065, 082, 085, 144, 182, 185, 198, 206,
                      242, 255, 274, 280

Signed-off-by: Denis Plotnikov <dplotnikov@virtuozzo.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
QAPI part:
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20200507082521.29210-2-dplotnikov@virtuozzo.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2020-05-13 14:20:31 +02:00
..
audio.json qapi/audio: add documentation for AudioFormat 2020-03-16 10:18:07 +01:00
authz.json authz: add QAuthZList object type for an access control list 2019-02-26 15:32:18 +00:00
block-core.json qcow2: introduce compression type feature 2020-05-13 14:20:31 +02:00
block.json qapi: Mark deprecated QMP parts with feature 'deprecated' 2020-03-17 21:43:12 +01:00
char.json qapi: Belatedly update doc comment for @wait deprecation 2020-03-17 19:58:34 +01:00
common.json qapi: Move query-target from misc.json to machine.json 2019-08-21 13:24:01 +02:00
control.json qapi: Mark deprecated QMP parts with feature 'deprecated' 2020-03-17 21:43:12 +01:00
crypto.json crypto: Fix defaults in QCryptoBlockCreateOptionsLUKS 2018-12-12 11:16:49 +00:00
dump.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
error.json qapi: Split error.json off common.json 2019-08-16 13:31:51 +02:00
introspect.json qapi: Add feature flags to struct members 2020-03-17 21:25:47 +01:00
job.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
machine-target.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
machine.json Add rx-softmmu 2020-03-19 17:58:05 +01:00
Makefile.objs qemu-storage-daemon: Add --monitor option 2020-03-06 17:21:28 +01:00
migration.json migration/xbzrle: add encoding rate 2020-05-07 17:40:24 +01:00
misc-target.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
misc.json qapi: Mark deprecated QMP parts with feature 'deprecated' 2020-03-17 21:43:12 +01:00
net.json net: Complete qapi-fication of netdev_add 2020-03-17 21:50:14 +01:00
opts-visitor.c make check-unit: use after free in test-opts-visitor 2019-09-24 11:03:44 +02:00
pragma.json qapi: Create 'pragma' module 2020-03-06 17:21:28 +01:00
qapi-clone-visitor.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
qapi-dealloc-visitor.c qapi: Fix Visitor contract for start_alternate() 2020-04-30 06:51:15 +02:00
qapi-schema.json qapi: Create 'pragma' module 2020-03-06 17:21:28 +01:00
qapi-util.c qemu-common: Move qemu_isalnum() etc. to qemu/ctype.h 2019-06-11 20:22:09 +02:00
qapi-visit-core.c qapi: Assert non-input visitors see only valid narrow integers 2020-04-30 07:26:40 +02:00
qdev.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
qmp-dispatch.c qmp: fix leak on callbacks that return both value and error 2020-04-02 14:55:46 -04:00
qmp-event.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qmp-registry.c qmp: constify QmpCommand and list 2020-03-17 21:43:12 +01:00
qobject-input-visitor.c qobject: Eliminate qdict_iter(), use qdict_first(), qdict_next() 2020-04-30 06:51:15 +02:00
qobject-output-visitor.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qom.json qapi: Flatten object-add 2020-03-06 17:21:27 +01:00
rdma.json qapi: Define new QMP message for pvrdma 2018-12-22 11:09:56 +02:00
rocker.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
run-state.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
sockets.json qapi: Fix indent level on doc comments in json files 2020-02-15 11:41:50 +01:00
string-input-visitor.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
string-output-visitor.c cutils: Move size_to_str() from "qemu-common.h" to "qemu/cutils.h" 2019-09-19 11:57:34 +02:00
tpm.json qapi: Use explicit bulleted lists 2020-02-15 11:41:50 +01:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
trace.json qapi: Add blank lines before bulleted lists 2020-02-15 11:41:50 +01:00
transaction.json qemu-storage-daemon: Add --monitor option 2020-03-06 17:21:28 +01:00
ui.json qapi: Delete all the "foo: dropped in n.n" notes 2020-02-15 11:41:50 +01:00