block: Add blklogwrites
commitbfcc224e3cf04ee3fef0eb69984607b5764d9892
authorAapo Vienamo <aapo@tuxera.com>
Tue, 3 Jul 2018 14:48:48 +0000 (3 17:48 +0300)
committerKevin Wolf <kwolf@redhat.com>
Thu, 5 Jul 2018 08:29:19 +0000 (5 10:29 +0200)
treebb7160787bef37b88058e2217e4cf6efc5afa263
parent7ae9f3f61b2b99e2f348d3dc4a4ef2c6af0ae9bc
block: Add blklogwrites

Implements a block device write logging system, similar to Linux kernel
device mapper dm-log-writes. The write operations that are performed
on a block device are logged to a file or another block device. The
write log format is identical to the dm-log-writes format. Currently,
log markers are not supported.

This functionality can be used for crash consistency and fs consistency
testing. By implementing it in qemu, tests utilizing write logs can be
be used to test non-Linux drivers and older kernels.

The driver accepts an optional parameter to set the sector size used
for logging. This makes the driver require all requests to be aligned
to this sector size and also makes offsets and sizes of writes in the
log metadata to be expressed in terms of this value (the log format has
a granularity of one sector for offsets and sizes). This allows
accurate logging of writes to guest block devices that have unusual
sector sizes.

The implementation is based on the blkverify and blkdebug block
drivers.

Signed-off-by: Aapo Vienamo <aapo@tuxera.com>
Signed-off-by: Ari Sundholm <ari@tuxera.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
MAINTAINERS
block/Makefile.objs
block/blklogwrites.c [new file with mode: 0644]
qapi/block-core.json