[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/5] vhost-user.rst: Migrating back-end-internal state
From: |
Stefan Hajnoczi |
Subject: |
Re: [PATCH v3 1/5] vhost-user.rst: Migrating back-end-internal state |
Date: |
Mon, 25 Sep 2023 15:04:31 -0400 |
On Fri, Sep 15, 2023 at 12:25:26PM +0200, Hanna Czenczek wrote:
> For vhost-user devices, qemu can migrate the virtio state, but not the
> back-end's internal state. To do so, we need to be able to transfer
> this internal state between front-end (qemu) and back-end.
>
> At this point, this new feature is added for the purpose of virtio-fs
> migration. Because virtiofsd's internal state will not be too large, we
> believe it is best to transfer it as a single binary blob after the
> streaming phase.
>
> These are the additions to the protocol:
> - New vhost-user protocol feature VHOST_USER_PROTOCOL_F_DEVICE_STATE
> - SET_DEVICE_STATE_FD function: Front-end and back-end negotiate a file
> descriptor over which to transfer the state.
> - CHECK_DEVICE_STATE: After the state has been transferred through the
> file descriptor, the front-end invokes this function to verify
> success. There is no in-band way (through the file descriptor) to
> indicate failure, so we need to check explicitly.
>
> Once the transfer FD has been established via SET_DEVICE_STATE_FD
> (which includes establishing the direction of transfer and migration
> phase), the sending side writes its data into it, and the reading side
> reads it until it sees an EOF. Then, the front-end will check for
> success via CHECK_DEVICE_STATE, which on the destination side includes
> checking for integrity (i.e. errors during deserialization).
>
> Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
> ---
> docs/interop/vhost-user.rst | 170 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 170 insertions(+)
Great documentation!
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
signature.asc
Description: PGP signature