Kevin Wolf eb8a0cf3ba qcow2: Forward ZERO_WRITE flag for full preallocation
The BDRV_REQ_ZERO_WRITE is currently implemented in a way that first the
image is possibly preallocated and then the zero flag is added to all
clusters. This means that a copy-on-write operation may be needed when
writing to these clusters, despite having used preallocation, negating
one of the major benefits of preallocation.

Instead, try to forward the BDRV_REQ_ZERO_WRITE to the protocol driver,
and if the protocol driver can ensure that the new area reads as zeros,
we can skip setting the zero flag in the qcow2 layer.

Unfortunately, the same approach doesn't work for metadata
preallocation, so we'll still set the zero flag there.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200424142701.67053-1-kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2020-04-30 17:51:07 +02:00
..
2018-01-23 12:34:43 +01:00
2019-10-14 17:12:48 +02:00
2017-07-11 17:45:02 +02:00
2019-07-30 12:25:43 +02:00
2019-11-19 10:01:34 +01:00
052
2019-09-03 14:56:06 +02:00
063
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
2017-05-11 12:08:24 +02:00
2017-09-06 15:19:01 +01:00
079
2020-01-06 13:43:07 +01:00
2019-07-12 15:42:23 +02:00
083
2019-10-28 11:22:31 +01:00
085
2020-03-24 11:57:38 +01:00
087
2020-03-24 11:57:38 +01:00
2020-01-06 13:43:07 +01:00
106
2020-01-06 13:43:07 +01:00
110
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
111
2020-01-06 13:43:07 +01:00
2018-06-11 16:18:45 +02:00
115
2020-01-06 13:43:07 +01:00
2019-08-16 10:25:16 +02:00
125
2020-01-06 13:43:07 +01:00
2017-10-26 15:01:14 +02:00
2016-05-19 16:45:31 +02:00
137
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
140
2019-10-28 11:22:31 +01:00
143
2019-10-28 11:22:31 +01:00
147
2020-02-20 16:43:42 +01:00
155
2020-03-11 15:54:38 +01:00
2020-03-11 15:54:38 +01:00
2016-09-20 22:10:57 +02:00
2016-09-20 22:10:57 +02:00
162
2019-10-10 12:13:23 +02:00
2019-10-10 12:13:23 +02:00
2017-09-26 15:00:32 +02:00
2016-09-20 22:10:57 +02:00
2017-09-18 19:43:38 -04:00
174
2020-01-06 13:43:07 +01:00
2017-02-12 00:47:42 +01:00
175
2020-01-06 13:43:07 +01:00
192
2019-10-28 11:22:31 +01:00
198
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
2019-06-24 16:01:04 +02:00
222
2020-02-07 15:15:16 +01:00
2019-10-10 10:56:18 +02:00
2019-02-25 15:11:27 +01:00
2019-03-19 15:49:29 +01:00
233
2019-06-13 08:50:47 -05:00
2019-02-01 13:46:44 +01:00
2019-02-01 13:46:44 +01:00
240
2019-10-28 11:22:31 +01:00
2019-03-19 15:49:29 +01:00
2019-06-04 16:55:58 +02:00
2019-08-16 16:28:03 -04:00
263
2019-09-16 15:37:12 +02:00
2019-09-16 15:37:12 +02:00
2019-10-22 20:51:31 -05:00
265
2020-01-06 13:43:07 +01:00
2019-11-18 16:01:31 -06:00
279
2020-03-24 11:57:38 +01:00
286
2020-02-20 16:43:42 +01:00

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@nongnu.org with a CC:
to qemu-block@nongnu.org.