Re: [PATCH v5 5/5] vhost/vsock: add VHOST_RESET_OWNER ioctl

From: Stefano Garzarella

Date: Wed Jul 22 2026 - 05:51:46 EST


On Mon, Jul 20, 2026 at 01:22:41PM +0300, Andrey Drobyshev wrote:
From: Pavel Tikhomirov <ptikhomirov@xxxxxxxxxxxxx>

This ioctl is needed for QEMU's CPR (checkpoint-restore) migration of
the guest with vhost-vsock device. For this to work, we need to reset
the device ownership on the source side by calling RESET_OWNER, and then
claim it on the dest side by calling SET_OWNER. We expect not to lose any
AF_VSOCK connection while this happens.

To that end, unlike the release path, RESET_OWNER keeps the guest CID
hashed: established connections survive, and host sends issued while
the device is between owners simply stay on send_pkt_queue until the
next device start drains them.

Since the device stays reachable through the CID hash, the lockless
send/cancel paths can race with the worker teardown in
vhost_workers_free(). The previous commit ("vhost: synchronize with
RCU readers when freeing workers") makes that safe.

Signed-off-by: Pavel Tikhomirov <ptikhomirov@xxxxxxxxxxxxx>
Signed-off-by: Andrey Drobyshev <andrey.drobyshev@xxxxxxxxxxxxx>
---
drivers/vhost/vsock.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Reviewed-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>