[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/2] vhost-user: Support vhost_dev_start
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v2 0/2] vhost-user: Support vhost_dev_start |
Date: |
Tue, 26 Jul 2022 10:56:05 -0400 |
On Tue, Jul 12, 2022 at 01:54:59PM +0300, Yajun Wu wrote:
> The motivation of adding vhost-user vhost_dev_start support is to
> improve backend configuration speed and reduce live migration VM
> downtime.
>
> Today VQ configuration is issued one by one. For virtio net with
> multi-queue support, backend needs to update RSS (Receive side
> scaling) on every rx queue enable. Updating RSS is time-consuming
> (typical time like 7ms).
>
> Implement already defined vhost status and message in the vhost
> specification [1].
> (a) VHOST_USER_PROTOCOL_F_STATUS
> (b) VHOST_USER_SET_STATUS
> (c) VHOST_USER_GET_STATUS
>
> Send message VHOST_USER_SET_STATUS with VIRTIO_CONFIG_S_DRIVER_OK for
> device start and reset(0) for device stop.
>
> On reception of the DRIVER_OK message, backend can apply the needed setting
> only once (instead of incremental) and also utilize parallelism on enabling
> queues.
>
> This improves QEMU's live migration downtime with vhost user backend
> implementation by great margin, specially for the large number of VQs of 64
> from 800 msec to 250 msec.
>
> Another change is to move the device start routines after finishing all the
> necessary device and VQ configuration, further aligning to the virtio
> specification for "device initialization sequence".
I think it's best to merge this after the 7.1 release.
I've tagged this but pls ping me after the release
just to make sure it's not lost. Thanks!
> [1] https://qemu-project.gitlab.io/qemu/interop/vhost-user.html#introduction
>
> v2:
> - add setting status bit VIRTIO_CONFIG_S_FEATURES_OK
> - avoid adding status bits already set
>
> Yajun Wu (2):
> vhost: Change the sequence of device start
> vhost-user: Support vhost_dev_start
>
> hw/block/vhost-user-blk.c | 18 ++++++----
> hw/net/vhost_net.c | 12 +++----
> hw/virtio/vhost-user.c | 74 ++++++++++++++++++++++++++++++++++++++-
> 3 files changed, 90 insertions(+), 14 deletions(-)
>
> --
> 2.27.0