mbox series

[RFC,v6,0/4] Add zoned storage emulation to virtio-blk driver

Message ID 20230129103951.86063-1-faithilikerun@gmail.com (mailing list archive)
Headers show
Series Add zoned storage emulation to virtio-blk driver | expand

Message

Sam Li Jan. 29, 2023, 10:39 a.m. UTC
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(-)