Since vhost-user-scsi device has been part of Qemu, many users are still using old virtio_blk device in Guest OS, compared with vhost-user-scsi, vhost-user-blk can get better performance, because eliminate one SCSI_MOD kernel module. This patch provides another option for uses to implement their own I/O stacks.
Due to virtio_blk protocol limitation, Qemu virtio_blk frontend device can't get Capacity/block size parameters through protocol, users must pass them when started Qemu. Of course, we can extend exist vhost user messages to add 2 more messages(get_block_config/set_block_config) for vhost-user-blk device. But for this patch, we choose append parameters to Qemu vhost-user-blk as the solution. Changpeng Liu (2): vhost-user-blk: introduce a new vhost-user-blk host device vhost-user-blk: introduce a vhost-user-blk sample application .gitignore | 1 + Makefile | 3 + Makefile.objs | 2 + configure | 11 + contrib/vhost-user-blk/Makefile.objs | 1 + contrib/vhost-user-blk/vhost-user-blk.c | 695 ++++++++++++++++++++++++++++++++ hw/block/Makefile.objs | 3 + hw/block/vhost-user-blk.c | 352 ++++++++++++++++ hw/virtio/virtio-pci.c | 55 +++ hw/virtio/virtio-pci.h | 18 + include/hw/virtio/vhost-user-blk.h | 46 +++ 11 files changed, 1187 insertions(+) create mode 100644 contrib/vhost-user-blk/Makefile.objs create mode 100644 contrib/vhost-user-blk/vhost-user-blk.c create mode 100644 hw/block/vhost-user-blk.c create mode 100644 include/hw/virtio/vhost-user-blk.h -- 1.9.3