From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
Stefan Hajnoczi <stefanha@redhat.com>,
Max Reitz <mreitz@redhat.com>
Subject: [Qemu-devel] [PULL v2 41/59] qapi/block-core: Add "new" qcow2 options
Date: Mon, 22 Sep 2014 12:42:12 +0100 [thread overview]
Message-ID: <1411386150-24003-42-git-send-email-stefanha@redhat.com> (raw)
In-Reply-To: <1411386150-24003-1-git-send-email-stefanha@redhat.com>
From: Max Reitz <mreitz@redhat.com>
qcow2 supports more than four options by now, add the new options
(overlap check mode and metadata cache size)
Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 1408557576-14574-5-git-send-email-mreitz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
qapi/block-core.json | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 78 insertions(+), 1 deletion(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index ef7faaa..85dc87d 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1264,6 +1264,67 @@
'data': { '*backing': 'BlockdevRef' } }
##
+# @Qcow2OverlapCheckMode
+#
+# General overlap check modes.
+#
+# @none: Do not perform any checks
+#
+# @constant: Perform only checks which can be done in constant time and
+# without reading anything from disk
+#
+# @cached: Perform only checks which can be done without reading anything
+# from disk
+#
+# @all: Perform all available overlap checks
+#
+# Since: 2.2
+##
+{ 'enum': 'Qcow2OverlapCheckMode',
+ 'data': [ 'none', 'constant', 'cached', 'all' ] }
+
+##
+# @Qcow2OverlapCheckFlags
+#
+# Structure of flags for each metadata structure. Setting a field to 'true'
+# makes qemu guard that structure against unintended overwriting. The default
+# value is chosen according to the template given.
+#
+# @template: Specifies a template mode which can be adjusted using the other
+# flags, defaults to 'cached'
+#
+# Since: 2.2
+##
+{ 'type': 'Qcow2OverlapCheckFlags',
+ 'data': { '*template': 'Qcow2OverlapCheckMode',
+ '*main-header': 'bool',
+ '*active-l1': 'bool',
+ '*active-l2': 'bool',
+ '*refcount-table': 'bool',
+ '*refcount-block': 'bool',
+ '*snapshot-table': 'bool',
+ '*inactive-l1': 'bool',
+ '*inactive-l2': 'bool' } }
+
+##
+# @Qcow2OverlapChecks
+#
+# Specifies which metadata structures should be guarded against unintended
+# overwriting.
+#
+# @flags: set of flags for separate specification of each metadata structure
+# type
+#
+# @mode: named mode which chooses a specific set of flags
+#
+# Since: 2.2
+##
+{ 'union': 'Qcow2OverlapChecks',
+ 'discriminator': {},
+ 'data': { 'flags': 'Qcow2OverlapCheckFlags',
+ 'mode': 'Qcow2OverlapCheckMode' } }
+
+##
# @BlockdevOptionsQcow2
#
# Driver specific block device options for qcow2.
@@ -1282,6 +1343,18 @@
# should be issued on other occasions where a cluster
# gets freed
#
+# @overlap-check: #optional which overlap checks to perform for writes
+# to the image, defaults to 'cached' (since 2.2)
+#
+# @cache-size: #optional the maximum total size of the L2 table and
+# refcount block caches in bytes (since 2.2)
+#
+# @l2-cache-size: #optional the maximum size of the L2 table cache in
+# bytes (since 2.2)
+#
+# @refcount-cache-size: #optional the maximum size of the refcount block cache
+# in bytes (since 2.2)
+#
# Since: 1.7
##
{ 'type': 'BlockdevOptionsQcow2',
@@ -1289,7 +1362,11 @@
'data': { '*lazy-refcounts': 'bool',
'*pass-discard-request': 'bool',
'*pass-discard-snapshot': 'bool',
- '*pass-discard-other': 'bool' } }
+ '*pass-discard-other': 'bool',
+ '*overlap-check': 'Qcow2OverlapChecks',
+ '*cache-size': 'int',
+ '*l2-cache-size': 'int',
+ '*refcount-cache-size': 'int' } }
##
--
1.9.3
next prev parent reply other threads:[~2014-09-22 11:44 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-22 11:41 [Qemu-devel] [PULL v2 00/59] Block patches Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 01/59] block/vhdx.c: Mark parent_vhdx_guid variable as unused Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 02/59] ide/atapi: Mark non-data commands as complete Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 03/59] aio-win32: fix uninitialized use of have_select_revents Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 04/59] ide/ahci: Check for -ECANCELED in aio callbacks Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 05/59] block: Add refcnt in BlockDriverAIOCB Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 06/59] block: Add bdrv_aio_cancel_async Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 07/59] block: Drop bdrv_em_co_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 08/59] block: Drop bdrv_em_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 09/59] thread-pool: Convert thread_pool_aiocb_info.cancel to cancel_async Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 10/59] linux-aio: Convert laio_aiocb_info.cancel to .cancel_async Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 11/59] dma: Convert dma_aiocb_info.cancel " Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 12/59] iscsi: Convert iscsi_aiocb_info.cancel " Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 13/59] archipelago: Drop archipelago_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 14/59] blkdebug: Drop blkdebug_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 15/59] blkverify: Drop blkverify_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 16/59] curl: Drop curl_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 17/59] qed: Drop qed_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 18/59] quorum: fix quorum_aio_cancel() Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 19/59] quorum: Convert quorum_aiocb_info.cancel to .cancel_async Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 20/59] rbd: Drop rbd_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 21/59] sheepdog: Convert sd_aiocb_info.cancel to .cancel_async Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 22/59] win32-aio: Drop win32_aiocb_info.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 23/59] ide: Convert trim_aiocb_info.cancel to .cancel_async Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 24/59] block: Drop AIOCBInfo.cancel Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 25/59] block: Rename qemu_aio_release -> qemu_aio_unref Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 26/59] qdev-monitor: fix segmentation fault on qdev_device_help() Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 27/59] aio-win32: avoid out-of-bounds access to the events array Stefan Hajnoczi
2014-09-22 11:41 ` [Qemu-devel] [PULL v2 28/59] block: Introduce "null" drivers Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 29/59] qapi: Sort BlockdevDriver enum data list Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 30/59] qapi: Sort items in BlockdevOptions definition Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 31/59] qapi/block: Add "fatal" to BLOCK_IMAGE_CORRUPTED Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 32/59] qcow2: Add qcow2_signal_corruption() Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 33/59] qcow2: Use qcow2_signal_corruption() for overlaps Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 34/59] qcow2: Check L1/L2/reftable entries for alignment Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 35/59] iotests: Add more tests for qcow2 corruption Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 36/59] image-fuzzer: Trivial readability and formatting improvements Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 37/59] hmp: fix memory leak at hmp_info_block_jobs() Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 38/59] qcow2: Fix leak of QemuOpts in qcow2_open() Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 39/59] qapi: Allow enums in anonymous unions Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 40/59] qcow2: Add overlap-check.template option Stefan Hajnoczi
2014-09-22 11:42 ` Stefan Hajnoczi [this message]
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 42/59] docs: List all image elements currently supported by the fuzzer Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 43/59] fuzz: Add fuzzing functions for entries of refcount table and blocks Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 44/59] layout: Add generators for " Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 45/59] ahci: Adding basic functionality qtest Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 46/59] ahci: MSI capability should be at 0x80, not 0x50 Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 47/59] ahci: Add test_pci_spec to ahci-test Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 48/59] ahci: add test_pci_enable " Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 49/59] ahci: properly shadow the TFD register Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 50/59] ahci: Add test_hba_spec to ahci-test Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 51/59] ahci: Add test_hba_enable " Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 52/59] ahci: Add test_identify case " Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 53/59] block/archipelago: Fix typo in qemu_archipelago_truncate() Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 54/59] block: delete cow block driver Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 55/59] block: vhdx - fix reading beyond pointer during image creation Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 56/59] async: aio_context_new(): Handle event_notifier_init failure Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 57/59] virtio: Import virtio_vring.h Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 58/59] vring: Better error handling if num is too large Stefan Hajnoczi
2014-09-22 11:42 ` [Qemu-devel] [PULL v2 59/59] block: Always compile virtio-blk dataplane Stefan Hajnoczi
2014-09-23 12:23 ` [Qemu-devel] [PULL v2 00/59] Block patches Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1411386150-24003-42-git-send-email-stefanha@redhat.com \
--to=stefanha@redhat.com \
--cc=mreitz@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).