From nobody Mon Feb 9 04:45:08 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1676484448; cv=none; d=zohomail.com; s=zohoarc; b=hdtV+jSi8tx2c7oesRK+0o4lZoq446ssO1LynSASdxGZjmUXEFrpc250FQcKXTPeJ+p4P/BluDvvn6iICWJoXEkS/z+ISNz/GJ6VQdArCVSr+tPNzAKCg5brtq/0YzPr3WMlE8AJ7h3FpxXrWjJiOhzqTUCWzjxQwEaPgNbC8Mo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676484448; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mkrwBd+ANgFYZFwnQWbbclPSysFfKRnQi/JE7ffnhCM=; b=SbBRodHBJYMvERFnO5D6FyJ2zkguqpCgfRkH+L2+wNNIM+fljX3GB6p4aIUpFGY+OB/RV5gu1nPVba2mGMyx4CpyLBEaziE/oqA/vBtWBetAG5/XVSv3K/Hb+d1/3KaN1QemNHJN/pCfEq2qXxN96xcZJ0fyneSuy8kwGZNZsog= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1676484448841249.65146895061798; Wed, 15 Feb 2023 10:07:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pSLkb-0007JD-5v; Wed, 15 Feb 2023 12:39:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSLkZ-0007GP-2f for qemu-devel@nongnu.org; Wed, 15 Feb 2023 12:39:23 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pSLkX-0005ob-Lr for qemu-devel@nongnu.org; Wed, 15 Feb 2023 12:39:22 -0500 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-528-CoKGl6kMMBiakFMLrb6roQ-1; Wed, 15 Feb 2023 12:39:17 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2BAEA3C0DDD6; Wed, 15 Feb 2023 17:39:17 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.155]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7A6CA140EBF4; Wed, 15 Feb 2023 17:39:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676482761; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mkrwBd+ANgFYZFwnQWbbclPSysFfKRnQi/JE7ffnhCM=; b=bcT9c7Ac9zOFarLHyIqGWxeyjDJ/4dBETfoWDVsEVUmCFg9eecCiEd2JFyCsHXDlIPzo7X hSUdOYXWhmffjE4O7pEkqg6KNRGqBu99pUrmd8SKfzqA8mDlV2MwtxjfCfglzXXbijUo0z FpEtw4vnZrKaEy9MVXMNqqAqXxRguKg= X-MC-Unique: CoKGl6kMMBiakFMLrb6roQ-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Cindy Lu , Shannon Nelson , longpeng2@huawei.com, virtualization@lists.linux-foundation.org, Harpreet Singh Anand , si-wei.liu@oracle.com, Stefan Hajnoczi , Eli Cohen , "Michael S. Tsirkin" , Gautam Dawar , Laurent Vivier , Liuxiangdong , alvaro.karsz@solid-run.com, Parav Pandit , Stefano Garzarella , Jason Wang , Zhu Lingshan , "Gonglei (Arei)" , Lei Yang Subject: [PATCH v3 06/14] vdpa: rewind at get_base, not set_base Date: Wed, 15 Feb 2023 18:38:42 +0100 Message-Id: <20230215173850.298832-7-eperezma@redhat.com> In-Reply-To: <20230215173850.298832-1-eperezma@redhat.com> References: <20230215173850.298832-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676484450709100003 At this moment it is only possible to migrate to a vdpa device running with x-svq=3Don. As a protective measure, the rewind of the inflight descriptors was done at the destination. That way if the source sent a virtqueue with inuse descriptors they are always discarded. Since this series allows to migrate also to passthrough devices with no SVQ, the right thing to do is to rewind at the source so the base of vrings are correct. Support for inflight descriptors may be added in the future. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-vdpa.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index a5cf2e7069..d253e9dc0e 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1212,18 +1212,7 @@ static int vhost_vdpa_set_vring_base(struct vhost_de= v *dev, struct vhost_vring_state *ring) { struct vhost_vdpa *v =3D dev->opaque; - VirtQueue *vq =3D virtio_get_queue(dev->vdev, ring->index); =20 - /* - * vhost-vdpa devices does not support in-flight requests. Set all of = them - * as available. - * - * TODO: This is ok for networking, but other kinds of devices might - * have problems with these retransmissions. - */ - while (virtqueue_rewind(vq, 1)) { - continue; - } if (v->shadow_vqs_enabled) { /* * Device vring base was set at device start. SVQ base is handled = by @@ -1242,6 +1231,19 @@ static int vhost_vdpa_get_vring_base(struct vhost_de= v *dev, int ret; =20 if (v->shadow_vqs_enabled) { + VirtQueue *vq =3D virtio_get_queue(dev->vdev, ring->index); + + /* + * vhost-vdpa devices does not support in-flight requests. Set all= of + * them as available. + * + * TODO: This is ok for networking, but other kinds of devices mig= ht + * have problems with these retransmissions. + */ + while (virtqueue_rewind(vq, 1)) { + continue; + } + ring->num =3D virtio_queue_get_last_avail_idx(dev->vdev, ring->ind= ex); return 0; } --=20 2.31.1