On 21.10.25 02:53, Raphael Norwitz wrote:
Overall looks ok. A couple comments
On Thu, Oct 16, 2025 at 7:49 AM Vladimir Sementsov-Ogievskiy
<[email protected]> wrote:
Opt-out backend initialization code, and instead get the state
from migration channel (including inflight region).
Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
---
hw/block/vhost-user-blk.c | 129 ++++++++++++++++++++++++-----
include/hw/virtio/vhost-user-blk.h | 2 +
include/hw/virtio/vhost.h | 3 +-
3 files changed, 111 insertions(+), 23 deletions(-)
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index ffdd600526..a8fd90480a 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -17,6 +17,7 @@
*/
[..]
@@ -656,6 +680,64 @@ static const VMStateDescription vmstate_vhost_user_blk = {
},
};
Rename vhost_user_blk_needed()?
Yes, will fix
+static bool vhost_user_needed(void *opaque)
+{
+ return migrate_local_vhost_user_blk();
+}
+
+static const VMStateDescription vmstate_vhost_user_blk_device = {
+ .name = "vhost-user-blk-device",
+ .version_id = 1,
+ .needed = vhost_user_needed,
+ .fields = (const VMStateField[]) {
+ VMSTATE_BACKEND_TRANSFER_CHARDEV(chardev, VHostUserBlk),
+ VMSTATE_BACKEND_TRANSFER_VHOST_INFLIGHT(inflight, VHostUserBlk),
+ VMSTATE_BACKEND_TRANSFER_VHOST_USER(dev, VHostUserBlk),
+ VMSTATE_BACKEND_TRANSFER_VHOST(dev, VHostUserBlk),
+ VMSTATE_END_OF_LIST()
+ },
+};
[..]
diff --git a/include/hw/virtio/vhost-user-blk.h
b/include/hw/virtio/vhost-user-blk.h
index a10f785672..b06f55fd6f 100644
--- a/include/hw/virtio/vhost-user-blk.h
+++ b/include/hw/virtio/vhost-user-blk.h
@@ -52,6 +52,8 @@ struct VHostUserBlk {
bool started_vu;
bool skip_get_vring_base_on_force_shutdown;
Why do we need incoming_backend? Looks like it is unused.
Oops right. Forget to delete, it was used in v1.
+
+ bool incoming_backend;
};
#endif
Thanks a lot for reviewing!
--
Best regards,
Vladimir