summaryrefslogtreecommitdiff
path: root/block/dmg-bz2.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2017-04-29 14:14:16 -0500
committerMax Reitz <mreitz@redhat.com>2017-05-11 14:28:06 +0200
commit63188c245013dbe383e8b031e665f813e2452ea5 (patch)
treecaf0ab0519943bf1785c55f364f975e7a8ecfd92 /block/dmg-bz2.c
parentd157ed5f7235f3d2d5596a514ad7507b18e24b88 (diff)
downloadqemu-63188c245013dbe383e8b031e665f813e2452ea5.zip
blkdebug: Add pass-through write_zero and discard support
In order to test the effects of artificial geometry constraints on operations like write zero or discard, we first need blkdebug to manage these actions. It also allows us to inject errors on those operations, just like we can for read/write/flush. We can also test the contract promised by the block layer; namely, if a device has specified limits on alignment or maximum size, then those limits must be obeyed (for now, the blkdebug driver merely inherits limits from whatever it is wrapping, but the next patch will further enhance it to allow specific limit overrides). This patch intentionally refuses to service requests smaller than the requested alignments; this is because an upcoming patch adds a qemu-iotest to prove that the block layer is correctly handling fragmentation, but the test only works if there is a way to tell the difference at artificial alignment boundaries when blkdebug is using a larger-than-default alignment. If we let the blkdebug layer always defer to the underlying layer, which potentially has a smaller granularity, the iotest will be thwarted. Tested by setting up an NBD server with export 'foo', then invoking: $ ./qemu-io qemu-io> open -o driver=blkdebug blkdebug::nbd://localhost:10809/foo qemu-io> d 0 15M qemu-io> w -z 0 15M Pre-patch, the server never sees the discard (it was silently eaten by the block layer); post-patch it is passed across the wire. Likewise, pre-patch the write is always passed with NBD_WRITE (with 15M of zeroes on the wire), while post-patch it can utilize NBD_WRITE_ZEROES (for less traffic). Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 20170429191419.30051-7-eblake@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block/dmg-bz2.c')
0 files changed, 0 insertions, 0 deletions