Reviewed-by: Raphael Norwitz <[email protected]>

On Thu, Oct 16, 2025 at 7:50 AM Vladimir Sementsov-Ogievskiy
<[email protected]> wrote:
>
> We'll split vhost_dev_init() into _init() and _connect(), to be able
> to postpone communication with backend, to support backend-transfer
> migration of vhost-user-blk in future commit.
>
> So, instead of passing it through parameters, store it in vhost_dev
> structure.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
> ---
>  hw/virtio/vhost.c         | 11 +++++------
>  include/hw/virtio/vhost.h |  1 +
>  2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index 7ba90c24db..9fc6e7ba65 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
> @@ -1501,8 +1501,7 @@ static void 
> vhost_virtqueue_error_notifier(EventNotifier *n)
>  }
>
>  static int vhost_virtqueue_init(struct vhost_dev *dev,
> -                                struct vhost_virtqueue *vq, int n,
> -                                bool busyloop_timeout)
> +                                struct vhost_virtqueue *vq, int n)
>  {
>      int vhost_vq_index = dev->vhost_ops->vhost_get_vq_index(dev, n);
>      struct vhost_vring_file file = {
> @@ -1539,8 +1538,8 @@ static int vhost_virtqueue_init(struct vhost_dev *dev,
>                                     vhost_virtqueue_error_notifier);
>      }
>
> -    if (busyloop_timeout) {
> -        r = vhost_virtqueue_set_busyloop_timeout(dev, n, busyloop_timeout);
> +    if (dev->busyloop_timeout) {
> +        r = vhost_virtqueue_set_busyloop_timeout(dev, n, 
> dev->busyloop_timeout);
>          if (r < 0) {
>              VHOST_OPS_DEBUG(r, "Failed to set busyloop timeout");
>              goto fail_err;
> @@ -1628,6 +1627,7 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
>
>      hdev->vdev = NULL;
>      hdev->migration_blocker = NULL;
> +    hdev->busyloop_timeout = busyloop_timeout;
>
>      r = vhost_set_backend_type(hdev, backend_type);
>      assert(r >= 0);
> @@ -1650,8 +1650,7 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opaque,
>      }
>
>      for (i = 0; i < hdev->nvqs; ++i, ++n_initialized_vqs) {
> -        r = vhost_virtqueue_init(hdev, hdev->vqs + i, hdev->vq_index + i,
> -                                 busyloop_timeout);
> +        r = vhost_virtqueue_init(hdev, hdev->vqs + i, hdev->vq_index + i);
>          if (r < 0) {
>              error_setg_errno(errp, -r, "Failed to initialize virtqueue %d", 
> i);
>              goto fail;
> diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
> index 1ba1af1d86..f1a7e7b971 100644
> --- a/include/hw/virtio/vhost.h
> +++ b/include/hw/virtio/vhost.h
> @@ -105,6 +105,7 @@ struct vhost_dev {
>      VIRTIO_DECLARE_FEATURES(_features);
>      VIRTIO_DECLARE_FEATURES(acked_features);
>
> +    uint32_t busyloop_timeout;
>      uint64_t max_queues;
>      uint64_t backend_cap;
>      /* @started: is the vhost device started? */
> --
> 2.48.1
>
>

Reply via email to