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

On Wed, Aug 13, 2025 at 1:00 PM Vladimir Sementsov-Ogievskiy
<[email protected]> wrote:
>
> For vhost user backend migration we'll need to disable memory
> logging on the device. Let's prepare a corresponding handler for
> the device.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
> ---
>  hw/virtio/vhost.c          | 10 ++++++++++
>  include/hw/virtio/virtio.h |  2 ++
>  2 files changed, 12 insertions(+)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index e7c809400b..0427fc29b2 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
> @@ -1134,6 +1134,16 @@ static int vhost_migration_log(MemoryListener 
> *listener, bool enable)
>      struct vhost_dev *dev = container_of(listener, struct vhost_dev,
>                                           memory_listener);
>      int r;
> +
> +    if (dev->vdev) {
> +        VirtioDeviceClass *vdc = VIRTIO_DEVICE_GET_CLASS(dev->vdev);
> +
> +        if (vdc->skip_vhost_migration_log &&
> +            vdc->skip_vhost_migration_log(dev->vdev)) {
> +            return 0;
> +        }
> +    }
> +
>      if (enable == dev->log_enabled) {
>          return 0;
>      }
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index 8b9db08ddf..9a4a0a94aa 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -234,6 +234,8 @@ struct VirtioDeviceClass {
>      /* May be called even when vdev->vhost_started is false */
>      struct vhost_dev *(*get_vhost)(VirtIODevice *vdev);
>      void (*toggle_device_iotlb)(VirtIODevice *vdev);
> +
> +    bool (*skip_vhost_migration_log)(VirtIODevice *vdev);
>  };
>
>  void virtio_instance_init_common(Object *proxy_obj, void *data,
> --
> 2.48.1
>
>

Reply via email to