Eric Blake dbc7b01492 nbd: Add 'qemu-nbd -A' to expose allocation depth
Allow the server to expose an additional metacontext to be requested
by savvy clients.  qemu-nbd adds a new option -A to expose the
qemu:allocation-depth metacontext through NBD_CMD_BLOCK_STATUS; this
can also be set via QMP when using block-export-add.

qemu as client is hacked into viewing the key aspects of this new
context by abusing the already-experimental x-dirty-bitmap option to
collapse all depths greater than 2, which results in a tri-state value
visible in the output of 'qemu-img map --output=json' (yes, that means
x-dirty-bitmap is now a bit of a misnomer, but I didn't feel like
renaming it as it would introduce a needless break of back-compat,
even though we make no compat guarantees with x- members):

unallocated (depth 0) => "zero":false, "data":true
local (depth 1)       => "zero":false, "data":false
backing (depth 2+)    => "zero":true,  "data":true

libnbd as client is probably a nicer way to get at the information
without having to decipher such hacks in qemu as client. ;)

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20201027050556.269064-11-eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
2020-10-30 15:22:00 -05:00
..
001
2020-05-05 13:17:36 +02:00
017
2020-07-17 14:20:57 +02:00
029
2020-07-17 14:20:57 +02:00
041
2020-09-08 13:40:49 +02:00
2020-09-08 13:40:49 +02:00
2017-07-11 17:45:02 +02:00
052
2020-05-05 13:17:36 +02:00
2020-09-02 16:32:14 -05:00
063
2020-01-06 13:43:07 +01:00
2020-01-06 13:43:07 +01:00
2015-01-23 12:41:32 -05:00
2017-05-11 12:08:24 +02:00
2017-09-06 15:19:01 +01:00
073
2020-07-17 14:20:57 +02:00
079
2020-01-06 13:43:07 +01:00
080
2020-05-13 14:20:31 +02:00
083
2019-10-28 11:22:31 +01:00
087
2020-07-06 08:49:28 +02:00
091
2020-05-08 13:26:35 +02: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
114
2020-07-17 14:20:57 +02:00
115
2020-01-06 13:43:07 +01:00
2019-08-16 10:25:16 +02:00
130
2020-07-17 14:20:57 +02:00
134
2020-07-17 14:20:57 +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
147
2020-02-20 16:43:42 +01:00
148
2020-05-08 13:26:35 +02:00
149
2020-05-05 13:17:36 +02:00
2020-03-11 15:54:38 +01:00
156
2020-07-17 14:20:57 +02:00
158
2020-07-17 14:20:57 +02: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
2020-06-23 16:07:07 +02:00
174
2020-01-06 13:43:07 +01:00
2017-02-12 00:47:42 +01:00
178
2020-07-06 08:49:28 +02:00
2020-05-28 13:15:23 -05:00
188
2020-07-06 08:49:28 +02:00
192
2019-10-28 11:22:31 +01:00
194
2020-09-15 11:05:12 +02:00
197
2020-07-28 15:28:56 +02:00
2020-07-28 15:28:56 +02:00
202
2020-05-05 13:17:36 +02:00
203
2020-05-05 13:17:36 +02:00
2020-09-07 12:31:31 +02:00
206
2020-07-06 08:49:28 +02:00
207
2020-05-05 13:17:36 +02:00
2019-06-24 16:01:04 +02:00
208
2020-09-15 11:05:12 +02:00
209
2020-05-05 13:17:36 +02:00
210
2020-05-05 13:17:36 +02:00
211
2020-05-05 13:17:36 +02:00
212
2020-05-05 13:17:36 +02:00
213
2020-05-05 13:17:36 +02:00
218
2020-05-05 13:17:36 +02:00
219
2020-05-05 13:17:36 +02:00
222
2020-09-15 11:05:12 +02:00
2019-10-10 10:56:18 +02:00
229
2020-06-17 16:21:21 +02:00
2019-03-19 15:49:29 +01:00
233
2019-06-13 08:50:47 -05:00
234
2020-05-05 13:17:36 +02:00
2019-02-01 13:46:44 +01:00
235
2020-05-05 13:17:36 +02:00
236
2020-05-05 13:17:36 +02:00
237
2020-05-05 13:17:36 +02:00
238
2020-05-05 13:17:36 +02:00
2019-02-01 13:46:44 +01:00
240
2019-10-28 11:22:31 +01:00
242
2020-05-05 13:17:36 +02:00
246
2020-05-05 13:17:36 +02:00
2019-03-19 15:49:29 +01:00
248
2020-05-05 13:17:36 +02:00
2019-06-04 16:55:58 +02:00
254
2020-05-05 13:17:36 +02:00
2019-08-16 16:28:03 -04:00
255
2020-05-05 13:17:36 +02:00
256
2020-05-05 13:17:36 +02:00
257
2020-09-15 11:05:12 +02:00
258
2020-05-05 13:17:36 +02:00
2020-09-02 16:32:14 -05:00
260
2020-05-05 13:17:36 +02:00
262
2020-05-05 13:17:36 +02:00
263
2020-07-06 08:49:28 +02:00
265
2020-01-06 13:43:07 +01:00
274
2020-10-23 13:42:16 +01:00
277
2020-05-05 13:17:36 +02:00
2019-11-18 16:01:31 -06:00
280
2020-05-05 13:17:36 +02:00
282
2020-07-17 14:20:57 +02:00
284
2020-07-06 08:49:28 +02:00
286
2020-02-20 16:43:42 +01:00
292
2020-06-17 16:21:21 +02:00
295
2020-07-06 08:49:28 +02:00
2020-07-06 08:49:28 +02:00
296
2020-07-21 10:49:02 +02:00
297
2020-05-18 19:05:25 +02:00
301
2020-07-14 15:18:59 +02:00
303
2020-08-21 08:56:09 -05:00
307
2020-10-02 15:46:40 +02:00
2020-09-16 08:41:06 +02:00
2020-07-17 14:20:57 +02:00
2020-09-30 19:09:19 +02: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.