On Mon, Oct 04, 2021 at 06:07:29PM +0300, Denis Plotnikov wrote: > It might be useful for the cases when a slow block layer should be replaced > with a more performant one on running VM without stopping, i.e. with very low > downtime comparable with the one on migration. > > It's possible to achive that for two reasons: > > 1.The VMStates of "virtio-blk" and "vhost-user-blk" are almost the same. > They consist of the identical VMSTATE_VIRTIO_DEVICE and differs from > each other in the values of migration service fields only. > 2.The device driver used in the guest is the same: virtio-blk > > In the series cross-migration is achieved by adding a new type. > The new type uses virtio-blk VMState instead of vhost-user-blk specific > VMstate, also it implements migration save/load callbacks to be compatible > with migration stream produced by "virtio-blk" device. > > Adding the new type instead of modifying the existing one is convenent. > It ease to differ the new virtio-blk-compatible vhost-user-blk > device from the existing non-compatible one using qemu machinery without any > other modifiactions. That gives all the variety of qemu device related > constraints out of box.
Hmm I'm not sure I understand. What is the advantage for the user? What if vhost-user-blk became an alias for vhost-user-virtio-blk? We could add some hacks to make it compatible for old machine types. > 0001: adds new type "vhost-user-virtio-blk" > 0002: add new type "vhost-user-virtio-blk-pci" > > Denis Plotnikov (2): > vhost-user-blk: add a new vhost-user-virtio-blk type > vhost-user-blk-pci: add new pci device type to support > vhost-user-virtio-blk > > hw/block/vhost-user-blk.c | 63 ++++++++++++++++++++++++++++++ > hw/virtio/vhost-user-blk-pci.c | 43 ++++++++++++++++++-- > include/hw/virtio/vhost-user-blk.h | 2 + > 3 files changed, 105 insertions(+), 3 deletions(-) > > -- > 2.25.1