From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8400E33A6F1 for ; Tue, 16 Jun 2026 13:48:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781617739; cv=none; b=HlHv87xH+KBk1r09gyZ9WhDp9oeBgEGNNHG/wWcJIKaGX1LMsaZHh0r9lgWWrKUQPiyIs7fUii7hfXCyHwyotOO92IWoZbcaG8e7966YW3yw8KEw2yGrefGgaTh+J2FmlWa66HK8X6DFff2BEzLU1HfiUynVfraG+d33FZq7aaU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781617739; c=relaxed/simple; bh=5CR0/gNeuOc2zkbAwEj3QpPxqk48E1/i/BCv28UFb7o=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=GsG0VatDu5od3cZAHCvv+vOlSLGXcyGn10wryzQI8aSzlm9FmiveKmM00FHEc+/Zz8vFD4EAjZJ9VdEStke31ApVztSVoLmqmalxgGpmC9ueSpuSHWt64wGHJwAG+bPpYZl1YBD4t9jAEKZzfba0TSWsMdS4u8d7m5wYhBv9UA0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=ehMcBOEw; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=bKM3dCZW; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="ehMcBOEw"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="bKM3dCZW" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781617736; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=hPZnF8IEm/lwUVIdQCh7bqnFf280e66Awhk1O9lMvHM=; b=ehMcBOEwRDnXnYV0brWhuFv9OHrIgh8UK5IhnfTvfyT6SGIGTfm8NSosVTw6f1gBvRSjO8 j0YmHtD9qY9Z1s0mUN675E67K0KeASoeCJbF8V+8RruNotfBIdSDrjqIhU+MrVxivJz9wJ p8t0Mbl+LolFSqB2EW7IPWmZ7/FlDSM= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-653-wtxUcQEtMsOHe4l28qHhpQ-1; Tue, 16 Jun 2026 09:48:55 -0400 X-MC-Unique: wtxUcQEtMsOHe4l28qHhpQ-1 X-Mimecast-MFC-AGG-ID: wtxUcQEtMsOHe4l28qHhpQ_1781617734 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-45ef3aeeb41so3123693f8f.1 for ; Tue, 16 Jun 2026 06:48:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1781617734; x=1782222534; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=hPZnF8IEm/lwUVIdQCh7bqnFf280e66Awhk1O9lMvHM=; b=bKM3dCZW5Ul9xW0SN/q3t97OLCk/qxY49gGAm/hGCx+UMSY9V+Bmave47lOB+kfFcS Nj9a51geEC6o+UkLd9EPcffiqgdcIaQUkHCXkcWTfeO7FKkZBpOeFSe5EoQyoyBcTi/Q ZzOY+F95A5JBcxMM8p8H6PGVK2pfHgqK+VmpKEWg3V6AxGMinbaU2PiIhLzuXgtnLjfW EWCmp3XbMD8Vtz2ydGS6axrmw7v0olLKExcrlYB2Wk+ea86sPAhKnl0vwcKf92iBDc2o nlGzfHUVuWL/nv9BGf5O81SowjZv6XFzi/F/mb/KC2gmLyvx/PzrfsbyHWSWueVuiSP2 PerA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781617734; x=1782222534; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hPZnF8IEm/lwUVIdQCh7bqnFf280e66Awhk1O9lMvHM=; b=HJAtxgsfuClcGoLu3FMm1Vq2aGFh0K4mOpmaZ6bk+XYxFd/mdTXSDUjFVhtzhDK5gE NwqOVr1PKZtFGZ5IUsqt6eR078f6XeYEqHqZ32IHApBXbJhDwgMH76wdn1NEw1QfJCVC AsvOEtImI9wm30p2l7Icu5Dblx/IUEP1klQls6SuBbJ+qG/C1Jji9QIjkFyP4S78K3ib 9/0W65yZzQHHyGBczEdBcnd4GlUVQ3HICLCUObmawXIls0VTWCYPVd9pjmSsv5CDQRNO hn7vChj3SPhYhGyMW95mHau0mf8i2mKC+C3NyeC/mc/liNVVbzNpfgXe8C+PZLciMKA6 nM/Q== X-Gm-Message-State: AOJu0YzGaoDv9ucevM1GdZ1rRGWhA7/YgXbKbOUOzfAmttE45hOmtwVo 9XzFSmAZPvp4XXDtYfacReFwtx5/lnHE4Xo7pkIM/yOQVoc8m4COpjhl/Rm+6zNYosCBL+dGJ+P IheAOaZv8ZW2/UnEP+vx5TLU8B2kGNC1Zdoq7q9nJWy5dcNjwhG6nGhloLzGSwY9zkA== X-Gm-Gg: Acq92OFKmqEVtlt2uiw/u+EBGuPO/KniUym5sZI1iM3PMqQ052QSvAvMgqjEFKKfu08 TllyKvjAP7sevozCZqALk0HjEfK53cWX3Tci0OLtS03izZv2iFM5fOrU4UiZ08MV+dAV4Y2Mxgs mR/ztDsEW4nTh/WlS1U35HLjpxfo4EDdH511xqSvMDAmRjB/7bmUxHQUmYD8zKUSYtDecksNk7v 4FAmDea3rVs3BhhzTk435T1Z4RjEj/DUrd5L6aeWFMDQ8ccwMB3+Ojj/t/XWwiTEpTsev73e3BA uEsfYAEGsYegDP+41UoKF/szvr0adiqIxeRBSMICAOCYlvn5ncq6ztrz5eNsNvDB/bD4n6vLDrI 8SyzElct1IghWiHdv33vW83K+OQEX/CUQpNcb1tibUS8wRSYLKLKby1y2XTdKB8ikA1sMHcE= X-Received: by 2002:a05:600c:4e01:b0:490:bd1d:472a with SMTP id 5b1f17b1804b1-4922ff992ffmr58825655e9.15.1781617734145; Tue, 16 Jun 2026 06:48:54 -0700 (PDT) X-Received: by 2002:a05:600c:4e01:b0:490:bd1d:472a with SMTP id 5b1f17b1804b1-4922ff992ffmr58824915e9.15.1781617733491; Tue, 16 Jun 2026 06:48:53 -0700 (PDT) Received: from sgarzare-redhat (host-82-53-135-12.retail.telecomitalia.it. [82.53.135.12]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49230a58becsm60905695e9.7.2026.06.16.06.48.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jun 2026 06:48:52 -0700 (PDT) Date: Tue, 16 Jun 2026 15:48:42 +0200 From: Stefano Garzarella To: Andrey Drobyshev Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, virtualization@lists.linux.dev, netdev@vger.kernel.org, mst@redhat.com, stefanha@redhat.com, maciej.szmigiero@oracle.com, bchaney@akamai.com, mark.kanda@oracle.com, ptikhomirov@virtuozzo.com, den@openvz.org Subject: Re: [PATCH 2/4] vhost/vsock: add VHOST_RESET_OWNER ioctl Message-ID: References: <20260612165718.433546-1-andrey.drobyshev@virtuozzo.com> <20260612165718.433546-3-andrey.drobyshev@virtuozzo.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20260612165718.433546-3-andrey.drobyshev@virtuozzo.com> On Fri, Jun 12, 2026 at 07:57:16PM +0300, Andrey Drobyshev wrote: >From: Pavel Tikhomirov > >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. > >Signed-off-by: Pavel Tikhomirov >--- > drivers/vhost/vsock.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > >diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c >index b12221ce6faf..e629886e5cf8 100644 >--- a/drivers/vhost/vsock.c >+++ b/drivers/vhost/vsock.c >@@ -894,6 +894,32 @@ static int vhost_vsock_set_features(struct vhost_vsock *vsock, u64 features) > return -EFAULT; > } > >+static int vhost_vsock_reset_owner(struct vhost_vsock *vsock) >+{ >+ struct vhost_iotlb *umem; >+ long err; >+ >+ mutex_lock(&vsock->dev.mutex); >+ err = vhost_dev_check_owner(&vsock->dev); >+ if (err) >+ goto done; >+ umem = vhost_dev_reset_owner_prepare(); >+ if (!umem) { >+ err = -ENOMEM; >+ goto done; >+ } >+ /* Follows vhost_vsock_dev_release closely except for guest_cid drop */ >+ vsock_for_each_connected_socket(&vhost_transport.transport, >+ vhost_vsock_reset_orphans); In vhost_vsock_reset_orphans() we have: rcu_read_lock(); /* If the peer is still valid, no need to reset connection */ if (vhost_vsock_get(vsk->remote_addr.svm_cid, sock_net(sk))) { rcu_read_unlock(); return; } IIUC we are not removing the guest cid from the hash table, so this check will be always true, and nothing is done. So, is this call really useful? >+ vhost_vsock_drop_backends(vsock); >+ vhost_vsock_flush(vsock); >+ vhost_dev_stop(&vsock->dev); >+ vhost_dev_reset_owner(&vsock->dev, umem); >+done: >+ mutex_unlock(&vsock->dev.mutex); >+ return err; >+} >+ > static long vhost_vsock_dev_ioctl(struct file *f, unsigned int ioctl, > unsigned long arg) > { >@@ -937,6 +963,8 @@ static long vhost_vsock_dev_ioctl(struct file *f, unsigned int ioctl, > return -EOPNOTSUPP; > vhost_set_backend_features(&vsock->dev, features); > return 0; >+ case VHOST_RESET_OWNER: >+ return vhost_vsock_reset_owner(vsock); > default: > mutex_lock(&vsock->dev.mutex); > r = vhost_dev_ioctl(&vsock->dev, ioctl, argp); >-- >2.47.1 >