Note: the virtio-blk headers isn't upstream in the kernel yet therefore marked as an RFC. The VIRTIO spec changes have been merged. The Linux virtio_blk guest driver patches are in Michael Tsirkin's vhost tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git/tree/drivers/block/virtio_blk.c?h=vhost
v6: - address Stefan's review comments * add accounting for zone append operation * fix in_iov usage in handle_request, error handling and typos v5: - address Stefan's review comments * restore the way writing zone append result to buffer * fix error checking case and other errands v4: - change the way writing zone append request result to buffer - change zone state, zone type value of virtio_blk_zone_descriptor - add trace events for new zone APIs v3: - use qemuio_from_buffer to write status bit [Stefan] - avoid using req->elem directly [Stefan] - fix error checkings and memory leak [Stefan] v2: - change units of emulated zone op coresponding to block layer APIs - modify error checking cases [Stefan, Damien] v1: - add zoned storage emulation Sam Li (4): include: update virtio_blk headers virtio-blk: add zoned storage emulation for zoned devices block: add accounting for zone append operation virtio-blk: add some trace events for zoned emulation block/qapi-sysemu.c | 11 + block/qapi.c | 15 + hw/block/trace-events | 7 + hw/block/virtio-blk-common.c | 2 + hw/block/virtio-blk.c | 410 ++++++++++++++++++++ include/block/accounting.h | 1 + include/standard-headers/linux/virtio_blk.h | 158 +++++++- qapi/block-core.json | 56 ++- qapi/block.json | 4 + 9 files changed, 637 insertions(+), 27 deletions(-) -- 2.38.1