From nobody Sun Feb 8 05:23:38 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=1657971348; cv=none; d=zohomail.com; s=zohoarc; b=crd8D55gH7CBUULSqBbkymYCo5KvhnIS42MVbvdGEr9PtgWrcTaiav1YpJXWszvOxhG9qTIZ8RZbBQ2g93RcrQLX0RvsIjOWXCcYmNKhIWhtLVkZmdRj7KDum5Dom6PfUE/wDIzKMh692+eqGCDXPMXVt9HLgfLfKxjibjETeAc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971348; 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=DpSt7JMQBZ++VGl+BnzhEQRAj5HaqmmYD+c9V6YVc/E=; b=AGmnPo8mLHmYowGae9Xv6ZbGhVhk9az+NjmJzYtlOHkM5yTQHwURrG34hzOjDm/49ustQsJ31IDPv6G1DVP5dkCKZUhhJ+imMFW5ThVHdtwz9qgNYRlUR4kxTfKaXe16qyqL622gnEHzlO4bXkguAG5jAmewFQ2r3PqrW7Xoq7U= 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 1657971348041724.8238898713905; Sat, 16 Jul 2022 04:35:48 -0700 (PDT) Received: from localhost ([::1]:56282 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCg5L-0007Gr-0B for importer@patchew.org; Sat, 16 Jul 2022 07:35:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg46-00058o-2A for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:25823) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg42-0006ym-Ju for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:28 -0400 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-610-a140c5aINLaRuhGDWWuDKg-1; Sat, 16 Jul 2022 07:34:20 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0399B3C01C0D; Sat, 16 Jul 2022 11:34:20 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id C2F9F40E80E0; Sat, 16 Jul 2022 11:34:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971264; 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=DpSt7JMQBZ++VGl+BnzhEQRAj5HaqmmYD+c9V6YVc/E=; b=eZz9XEKtM0mIeBh2f5z6fz4i74UTchF6LqBPN4p31Uy9/NZ56bwYr5AcmLzrpQwlLheJxq 5DibR1yto0mbktmENBNGb6u23HS/AaG2s0QfsDCRVGN2JA/YsFuTJ8ui1+FpxIGlOE4of2 0CB7TgODlRBkBpeYCQcvgZvj86ecaCg= X-MC-Unique: a140c5aINLaRuhGDWWuDKg-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 01/12] vhost: Get vring base from vq, not svq Date: Sat, 16 Jul 2022 13:33:56 +0200 Message-Id: <20220716113407.2730331-2-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971348477100001 The SVQ vring used idx usually match with the guest visible one, as long as all the guest buffers (GPA) maps to exactly one buffer within qemu's VA. However, as we can see in virtqueue_map_desc, a single guest buffer could map to many buffers in SVQ vring. The solution is to stop using the device's used idx and check for the last avail idx. Since we cannot report in-flight descriptors with vdpa, let's rewind all of them. Fixes: 6d0b22266633 ("vdpa: Adapt vhost_vdpa_get_vring_base to SVQ") Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-vdpa.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 795ed5a049..18820498b3 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1194,11 +1194,10 @@ static int vhost_vdpa_get_vring_base(struct vhost_d= ev *dev, struct vhost_vring_state *ring) { struct vhost_vdpa *v =3D dev->opaque; - int vdpa_idx =3D ring->index - dev->vq_index; int ret; =20 if (v->shadow_vqs_enabled) { - VhostShadowVirtqueue *svq =3D g_ptr_array_index(v->shadow_vqs, vdp= a_idx); + VirtQueue *vq =3D virtio_get_queue(dev->vdev, ring->index); =20 /* * Setting base as last used idx, so destination will see as avail= able @@ -1208,7 +1207,10 @@ static int vhost_vdpa_get_vring_base(struct vhost_de= v *dev, * TODO: This is ok for networking, but other kinds of devices mig= ht * have problems with these retransmissions. */ - ring->num =3D svq->last_used_idx; + while (virtqueue_rewind(vq, 1)) { + continue; + } + ring->num =3D virtio_queue_get_last_avail_idx(dev->vdev, ring->ind= ex); return 0; } =20 --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971347; cv=none; d=zohomail.com; s=zohoarc; b=bpp+afQymhbTddtx6dugm214U7br99F8mvhyMchfxFqJWYwInOIm8yHyMaFVKoEuc+Wa+VtXsnaxgh/zHdVsoMygZyVrxQLvTDuGFnqzUvg4rLRzgGxp7XKFSDq5F7yaBLj6mZOU0IMn2p2GC8cAPGlsuEDTO2n4mTty+5HufBw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971347; 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=Z+MoXENGTkhfESSUfSq/nhfoGvDVnmIdW2wYR+F4SKg=; b=TOk7kkY5sFmt2PX3keCR+dGeBPzazU2xbdbD6+/CkO33TY/QphGMKmJGHc7fAm942kyVrz5Af9Kp7tKNSL4ffoLVpzXmyjvtzLwuMsTITy76cbvo6DvvMF7+8bN08/5T3euJpqzhNR718NmXo3LEOMn0T+DPvSP4J4g2S/G96rw= 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 1657971347308304.8738718853689; Sat, 16 Jul 2022 04:35:47 -0700 (PDT) Received: from localhost ([::1]:56302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCg5K-0007Hh-8z for importer@patchew.org; Sat, 16 Jul 2022 07:35:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52792) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg46-000590-Gu for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:35755) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg44-0006zG-Pk for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:30 -0400 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-328-dbwuTi9YOnK-2xBxNKz_qA-1; Sat, 16 Jul 2022 07:34:24 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 64F092932498; Sat, 16 Jul 2022 11:34:24 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id 581AE40E80E0; Sat, 16 Jul 2022 11:34:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971268; 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=Z+MoXENGTkhfESSUfSq/nhfoGvDVnmIdW2wYR+F4SKg=; b=WCNQz/b2ZCfisjVo5wy7mvm0nEhKTC8kB1HVYb4I/ZwcdkuB+WO/ozXs/s4XwvW3sgALz7 HDorx2YjM8cCS+3gWQhVn4T+utMbmNGSLVd9qOezkoVe7CDFvDvbQVJ43ChtZ2GnY/mx9s F7OTa/XZ+E6Xp8xTEW5hIX6dp29vegU= X-MC-Unique: dbwuTi9YOnK-2xBxNKz_qA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 02/12] vhost: Move SVQ queue rewind to the destination Date: Sat, 16 Jul 2022 13:33:57 +0200 Message-Id: <20220716113407.2730331-3-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971348478100002 Migration with SVQ already migrate the inflight descriptors, so the destination can perform the work. This makes easier to migrate between backends or to recover them in vhost devices that support set in flight descriptors. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-vdpa.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 18820498b3..4458c8d23e 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1178,7 +1178,18 @@ 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 @@ -1197,19 +1208,6 @@ 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); - - /* - * Setting base as last used idx, so destination will see as avail= able - * all the entries that the device did not use, including the in-f= light - * processing ones. - * - * 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 From nobody Sun Feb 8 05:23:38 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=1657971355; cv=none; d=zohomail.com; s=zohoarc; b=iZ5NcjSJqhEchqagSZhxHD+iXz+Pwv2UZ32MQ0z3Ih31A7lhDNbpvvD5bW7u12w3oDA3A7vNL2SyHU/Cd7gxa92PlNtrYltqodN6IiZEq1XPmHFyX6WJ8ZaNAJk56IrEm3sqtMUuE8Po2CXyVu/1gUnk8mZYCibQ1j8ZbnJxxY4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971355; 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=iaPXiroC18+ZA5spvraclhMd2399NDjZDtJkTW6GnHM=; b=bq5bgwWnPKHEg0gOEuwmAPXtvnXDoGZBxczQ3snO0MzCpmFKWC3sUR8UkPc2oLXzA/QrEbHCfpI2y2w1JKHmRwfKvbCNHUWeTA/g7+8RvvxcwicV+EMzr5Bw1CTydzUtrI3nGGu4A8zNZInA+MufIlZ4trfU+IwOnKtwK/RQ+gE= 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 1657971355391968.033063727501; Sat, 16 Jul 2022 04:35:55 -0700 (PDT) Received: from localhost ([::1]:56844 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCg5S-0007fk-Bk for importer@patchew.org; Sat, 16 Jul 2022 07:35:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4B-0005FD-07 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:34562) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg48-0006zh-CM for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:33 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-199-U0sIAvhEO3yeV80zLhhjYQ-1; Sat, 16 Jul 2022 07:34:29 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 20798811E7A; Sat, 16 Jul 2022 11:34:29 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id BEA9F40E80E0; Sat, 16 Jul 2022 11:34:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971271; 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=iaPXiroC18+ZA5spvraclhMd2399NDjZDtJkTW6GnHM=; b=h6ZP1bPdWShWKpLoYrPQ1XPWXGGTz5Aw8jMB0OTvP1ACqc0MepO/+FiUN59dNAhjKmjxXN uUchkJ19ivYa8FC3L8WKANpWE4eShvjVQlcq3QmKblBSNizMTSdDJc979u1bveXbc6dXmL ClFhhHMMy/w9fx/NEMHiOiZAvnlIVZM= X-MC-Unique: U0sIAvhEO3yeV80zLhhjYQ-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 03/12] vdpa: Small rename of error labels Date: Sat, 16 Jul 2022 13:33:58 +0200 Message-Id: <20220716113407.2730331-4-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971356249100001 So later patches are cleaner Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-vdpa.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 4458c8d23e..906c365036 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1039,7 +1039,7 @@ static bool vhost_vdpa_svqs_start(struct vhost_dev *d= ev) int r; bool ok =3D vhost_vdpa_svq_setup(dev, svq, i, &err); if (unlikely(!ok)) { - goto err; + goto err_svq_setup; } =20 vhost_svq_start(svq, dev->vdev, vq); @@ -1064,8 +1064,7 @@ err_set_addr: err_map: vhost_svq_stop(g_ptr_array_index(v->shadow_vqs, i)); =20 -err: - error_reportf_err(err, "Cannot setup SVQ %u: ", i); +err_svq_setup: for (unsigned j =3D 0; j < i; ++j) { VhostShadowVirtqueue *svq =3D g_ptr_array_index(v->shadow_vqs, j); vhost_vdpa_svq_unmap_rings(dev, svq); --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971496; cv=none; d=zohomail.com; s=zohoarc; b=KtHU31AxdN1+ienAPxTxAp0hJMlwQseSuEdib5sPdYD3+ohh6HbsqT+O2RaMU3QBedJSFpo98O8LKsSgk1vKA6/U9qSMF2EpCNgKdQdukh/MT1nEUQXjE/jeLsxFJQOWt2XB/G8cahBMODrtk+uTDNNl0wPts76B8RgDzAluTNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971496; 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=n1eDbwMaoDKK9v5idpFW4e2Ch82loyd1Yh41jZSNnaY=; b=kDkY3GsIO7OpuqUxUggJrycoRJJkrfyRItYYQyFh2KbW9md+fviS2wBRzsOlew7TbGyzr/bpjLiv4T4SEZgA1DxrGClwOz/GcPabO7rTCWnHH2Z3I2NbDEo0aFU7BEZXJsNL3AYy7X35PLmdMzSPM/XaMI5Fg7+JM+SueWtwEi0= 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 1657971496084796.1126806368546; Sat, 16 Jul 2022 04:38:16 -0700 (PDT) Received: from localhost ([::1]:36610 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCg7i-0004ZJ-Uk for importer@patchew.org; Sat, 16 Jul 2022 07:38:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52852) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4G-0005Ws-C6 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:40 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:57027) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4E-0006zz-R8 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:40 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-49-Ab-MnvkJMs-zmrrW1bCZNw-1; Sat, 16 Jul 2022 07:34:34 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 3E763811E80; Sat, 16 Jul 2022 11:34:34 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id 975C440E80E0; Sat, 16 Jul 2022 11:34:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971278; 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=n1eDbwMaoDKK9v5idpFW4e2Ch82loyd1Yh41jZSNnaY=; b=OHNwRTEJvn6wEGrbCPHdg+CVSugM7Bzw88xSZvFidwKRWv6iSmwojn260NuSXbtSpDIfW1 RLlJUXkY4121VEbmD1NcFkiypjNUiXElvJwPVAMQlEpc4B508hA8APYUB136AYXI1ZnQaE wb8l5Xjhf5TI0DZdJ6ZSLOoGoPEOc/M= X-MC-Unique: Ab-MnvkJMs-zmrrW1bCZNw-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 04/12] vdpa: delay set_vring_ready after DRIVER_OK Date: Sat, 16 Jul 2022 13:33:59 +0200 Message-Id: <20220716113407.2730331-5-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971496845100003 To restore the device in the destination of a live migration we send the commands through control virtqueue. For a device to read CVQ it must have received DRIVER_OK status bit. However this open a window where the device could start receiving packets in rx queue 0 before it receive the RSS configuration. To avoid that, we will not send vring_enable until all configuration is used by the device. As a first step, reverse the DRIVER_OK and SET_VRING_ENABLE steps. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-vdpa.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 906c365036..1d8829c619 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -730,13 +730,18 @@ static int vhost_vdpa_get_vq_index(struct vhost_dev *= dev, int idx) return idx; } =20 +/** + * Set ready all vring of the device + * + * @dev: Vhost device + */ static int vhost_vdpa_set_vring_ready(struct vhost_dev *dev) { int i; trace_vhost_vdpa_set_vring_ready(dev); - for (i =3D 0; i < dev->nvqs; ++i) { + for (i =3D 0; i < dev->vq_index_end; ++i) { struct vhost_vring_state state =3D { - .index =3D dev->vq_index + i, + .index =3D i, .num =3D 1, }; vhost_vdpa_call(dev, VHOST_VDPA_SET_VRING_ENABLE, &state); @@ -1111,7 +1116,6 @@ static int vhost_vdpa_dev_start(struct vhost_dev *dev= , bool started) if (unlikely(!ok)) { return -1; } - vhost_vdpa_set_vring_ready(dev); } else { ok =3D vhost_vdpa_svqs_stop(dev); if (unlikely(!ok)) { @@ -1125,16 +1129,22 @@ static int vhost_vdpa_dev_start(struct vhost_dev *d= ev, bool started) } =20 if (started) { + int r; + memory_listener_register(&v->listener, &address_space_memory); - return vhost_vdpa_add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK); + r =3D vhost_vdpa_add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK); + if (unlikely(r)) { + return r; + } + vhost_vdpa_set_vring_ready(dev); } else { vhost_vdpa_reset_device(dev); vhost_vdpa_add_status(dev, VIRTIO_CONFIG_S_ACKNOWLEDGE | VIRTIO_CONFIG_S_DRIVER); memory_listener_unregister(&v->listener); - - return 0; } + + return 0; } =20 static int vhost_vdpa_set_log_base(struct vhost_dev *dev, uint64_t base, --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971754; cv=none; d=zohomail.com; s=zohoarc; b=Iw1/4ebxO5FxpLz1+l3HzXei+zYhLJMChf4CraoQGg535l81Rlwq0ol5lo56tSKkXhIHR7IVJ2UAPDLqitpefsBMI/4aJo4C5+uydRpsIHdO3Qhrq202jQYWL0JGC3h68L0ne98Zk9sB+kp6//ecMhwOQbr6vqdUoDwwLbbwGEU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971754; 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=iP1c1ooAIhnRkObGPFLWlgm5seji66sFBMq3h6g89bQ=; b=AMc/PGDBtpiYqYINCnqjVvt9H9sqL2xQiM7BOPwnFfiXQAbVGoIuR9nJQ43DUyar3L+bz1bSSNORNehmYkmpBsbUb+22BBUnMUFq4iv5h/DDOPNqvR1O+Jk/1YndZiRKdUi4le9TTdZSqsEEAKaQ6xxk74hM9vWT/LvwTJhHgrI= 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 1657971754266220.94438709196254; Sat, 16 Jul 2022 04:42:34 -0700 (PDT) Received: from localhost ([::1]:45464 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCgBt-00027Q-9c for importer@patchew.org; Sat, 16 Jul 2022 07:42:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52894) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4R-00067N-U8 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:28969) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4Q-00070c-D0 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:51 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-576-FPPvsWpcOzadbJZKZP21kg-1; Sat, 16 Jul 2022 07:34:39 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id E8C56101A54E; Sat, 16 Jul 2022 11:34:38 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9BAC140E80E0; Sat, 16 Jul 2022 11:34:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971289; 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=iP1c1ooAIhnRkObGPFLWlgm5seji66sFBMq3h6g89bQ=; b=apF6QcFLc4WWBke3LJkEFe1tVT4ghr030vIL86hHbJHEUHvcitoMj82mQYKS06leGNJip5 sdaCQT0rIRIpgsboYx0oQHD0OBu5T4gPP4g2wO0cxz06FhbcMs7GmfAdwplRcKO2Y5v88n IOcnClHVZMT6eUsYa2s41qKDXUoSUFA= X-MC-Unique: FPPvsWpcOzadbJZKZP21kg-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 05/12] vhost: stop transfer elem ownership in vhost_handle_guest_kick Date: Sat, 16 Jul 2022 13:34:00 +0200 Message-Id: <20220716113407.2730331-6-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971755845100001 It was easier to allow vhost_svq_add to handle the memory. Now that we will move SVQDesc to an opaque context, it's better to handle it in the caller. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-shadow-virtqueue.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index a21b0b1bf6..29633b7a29 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -233,9 +233,6 @@ static void vhost_svq_kick(VhostShadowVirtqueue *svq) /** * Add an element to a SVQ. * - * The caller must check that there is enough slots for the new element. It - * takes ownership of the element: In case of failure not ENOSPC, it is fr= ee. - * * Return -EINVAL if element is invalid, -ENOSPC if dev queue is full */ int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, @@ -252,7 +249,6 @@ int vhost_svq_add(VhostShadowVirtqueue *svq, const stru= ct iovec *out_sg, =20 ok =3D vhost_svq_add_split(svq, out_sg, out_num, in_sg, in_num, &qemu_= head); if (unlikely(!ok)) { - g_free(elem); return -EINVAL; } =20 @@ -293,7 +289,7 @@ static void vhost_handle_guest_kick(VhostShadowVirtqueu= e *svq) virtio_queue_set_notification(svq->vq, false); =20 while (true) { - VirtQueueElement *elem; + g_autofree VirtQueueElement *elem; int r; =20 if (svq->next_guest_avail_elem) { @@ -324,12 +320,14 @@ static void vhost_handle_guest_kick(VhostShadowVirtqu= eue *svq) * queue the current guest descriptor and ignore kicks * until some elements are used. */ - svq->next_guest_avail_elem =3D elem; + svq->next_guest_avail_elem =3D g_steal_pointer(&elem); } =20 /* VQ is full or broken, just return and ignore kicks */ return; } + /* elem belongs to SVQ or external caller now */ + elem =3D NULL; } =20 virtio_queue_set_notification(svq->vq, true); --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971523; cv=none; d=zohomail.com; s=zohoarc; b=fp9ksnATheuMBVeAz6/Z7Qh6f0qY1B9NF5Gy7Yfm8J9pRydDpAUfvDjuUuA9anVzrkFI8QqtS7N5JF+s8FP7Adlrq3953FnYhFSsBA5ZKtTfGSG+o1zIQT9/RK7n2LSIH0Fgc2p20xMl0oblHT5eYBs26EH0v/UHfqTavO76RHk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971523; 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=01ACmeGhAIP2AtznF+uKhJzd48YalALS/Ud8+wykJbc=; b=ABFwre/GG4XDgR23HYJ+RhtGv4g+xjC/xQd+fLi6HUIGCOovVt2Xvo07H6RnBrPOfGGCKv2y401Oxa/MBS/YLCc/muJ92z/UIJkD6a0pPS/vGWpfFRdcuIcGIVvcoJsBb8z7VWqQLoB5pu+tf2WSnEHwOATMHwsccxTkoP9o/I0= 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 1657971522999937.6174948264928; Sat, 16 Jul 2022 04:38:42 -0700 (PDT) Received: from localhost ([::1]:36942 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCg88-0004mf-If for importer@patchew.org; Sat, 16 Jul 2022 07:38:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4R-00065U-Cn for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:51 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:53501) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4P-00070Y-O3 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:51 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-640-cFsqNETOMqK5zMvKKV4Lhw-1; Sat, 16 Jul 2022 07:34:45 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7E457811E76; Sat, 16 Jul 2022 11:34:44 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id 88C3B40E80E0; Sat, 16 Jul 2022 11:34:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971289; 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=01ACmeGhAIP2AtznF+uKhJzd48YalALS/Ud8+wykJbc=; b=PnfDRteN6dAzRAWBNa4QfBDAB1Jp/fVPNzuo3sdTVNpQYNtjxy6n50Klh+90nExaE+jW5L AdS2tGtu7RRsflwTbPdJYnr92H2oy8RDt4PyVMiYUi7bWC6kDZLISjI507I3F/LVLXWU9N AKOjm+b9avLs3KvMYZ1rzZN8/nHt3Q8= X-MC-Unique: cFsqNETOMqK5zMvKKV4Lhw-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 06/12] vhost: Use opaque data in SVQDescState Date: Sat, 16 Jul 2022 13:34:01 +0200 Message-Id: <20220716113407.2730331-7-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971524957100001 Since we'll allow net/vhost-vdpa to add elements that don't come from the guest, we need to store opaque data that makes sense to the caller. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-shadow-virtqueue.h | 4 ++-- hw/virtio/vhost-shadow-virtqueue.c | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.h b/hw/virtio/vhost-shadow-vi= rtqueue.h index d04c34a589..03eb7ff670 100644 --- a/hw/virtio/vhost-shadow-virtqueue.h +++ b/hw/virtio/vhost-shadow-virtqueue.h @@ -16,7 +16,7 @@ #include "hw/virtio/vhost-iova-tree.h" =20 typedef struct SVQDescState { - VirtQueueElement *elem; + void *data; =20 /* * Number of descriptors exposed to the device. May or may not match @@ -115,7 +115,7 @@ void vhost_svq_push_elem(VhostShadowVirtqueue *svq, const VirtQueueElement *elem, uint32_t len); int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, size_t out_num, const struct iovec *in_sg, size_t in_num, - VirtQueueElement *elem); + void *data); size_t vhost_svq_poll(VhostShadowVirtqueue *svq); =20 void vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue *svq, int svq_kick_fd); diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-vi= rtqueue.c index 29633b7a29..88e290d94b 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -237,7 +237,7 @@ static void vhost_svq_kick(VhostShadowVirtqueue *svq) */ int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, size_t out_num, const struct iovec *in_sg, size_t in_num, - VirtQueueElement *elem) + void *data) { unsigned qemu_head; unsigned ndescs =3D in_num + out_num; @@ -252,7 +252,7 @@ int vhost_svq_add(VhostShadowVirtqueue *svq, const stru= ct iovec *out_sg, return -EINVAL; } =20 - svq->desc_state[qemu_head].elem =3D elem; + svq->desc_state[qemu_head].data =3D data; svq->desc_state[qemu_head].ndescs =3D ndescs; vhost_svq_kick(svq); return 0; @@ -389,8 +389,7 @@ static uint16_t vhost_svq_last_desc_of_chain(const Vhos= tShadowVirtqueue *svq, return i; } =20 -static VirtQueueElement *vhost_svq_get_buf(VhostShadowVirtqueue *svq, - uint32_t *len) +static void *vhost_svq_get_buf(VhostShadowVirtqueue *svq, uint32_t *len) { const vring_used_t *used =3D svq->vring.used; vring_used_elem_t used_elem; @@ -413,7 +412,7 @@ static VirtQueueElement *vhost_svq_get_buf(VhostShadowV= irtqueue *svq, return NULL; } =20 - if (unlikely(!svq->desc_state[used_elem.id].elem)) { + if (unlikely(!svq->desc_state[used_elem.id].data)) { qemu_log_mask(LOG_GUEST_ERROR, "Device %s says index %u is used, but it was not available", svq->vdev->name, used_elem.id); @@ -426,7 +425,7 @@ static VirtQueueElement *vhost_svq_get_buf(VhostShadowV= irtqueue *svq, svq->free_head =3D used_elem.id; =20 *len =3D used_elem.len; - return g_steal_pointer(&svq->desc_state[used_elem.id].elem); + return g_steal_pointer(&svq->desc_state[used_elem.id].data); } =20 /** @@ -498,8 +497,7 @@ size_t vhost_svq_poll(VhostShadowVirtqueue *svq) { do { uint32_t len; - VirtQueueElement *elem =3D vhost_svq_get_buf(svq, &len); - if (elem) { + if (vhost_svq_get_buf(svq, &len)) { return len; } =20 @@ -658,8 +656,12 @@ void vhost_svq_stop(VhostShadowVirtqueue *svq) vhost_svq_flush(svq, false); =20 for (unsigned i =3D 0; i < svq->vring.num; ++i) { + /* + * We know .data is an element because external callers of + * vhost_svq_add use active polling, not SVQ + */ g_autofree VirtQueueElement *elem =3D NULL; - elem =3D g_steal_pointer(&svq->desc_state[i].elem); + elem =3D g_steal_pointer(&svq->desc_state[i].data); if (elem) { virtqueue_detach_element(svq->vq, elem, 0); } --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971903; cv=none; d=zohomail.com; s=zohoarc; b=H/Nnuipt4fMefdmD71np/SRp1vcgYrtcEWAazk4N5hJyjIDJmENbaxhIYu6UsKNMDZAMFRZZn0uIpshtyMWCu82oxuoxxUGH/mp2FRo0rDPLZ0ogoXd3RMc5u1P+Cj3ntr8Qh7yjgOj0wrIAS7d5lJJ/LfccFo4YrQM8ND1y/t0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971903; 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=iHt0mH1Q+LrySXJT1nR/45/olx9LCuPY9Q3fpbAwxDY=; b=EpaiFPDwkvToTt6Dv6lEDEI7ntOGGb29QSr52Y2fYAQWzXJl3blv5mCQeUU9bwLln3cfdQOWqiiXdG8NIWRq6KOjMkk724xMmwY4cfWVc+M5jjo5GRiBAAB69dgbBDpuRtwxcX9uH7VLNX6sriMcoH6Z6idC/GyjFbonOo0W/Zc= 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 1657971903375159.35561453087257; Sat, 16 Jul 2022 04:45:03 -0700 (PDT) Received: from localhost ([::1]:51250 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCgEI-00066v-BP for importer@patchew.org; Sat, 16 Jul 2022 07:45:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52908) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4X-0006I3-0i for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:51100) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4V-000717-Ff for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:34:56 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-64-QZwM9g0VPHqwVgKb59fK1g-1; Sat, 16 Jul 2022 07:34:50 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4D46A801231; Sat, 16 Jul 2022 11:34:50 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id EF91D40E80E0; Sat, 16 Jul 2022 11:34:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971293; 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=iHt0mH1Q+LrySXJT1nR/45/olx9LCuPY9Q3fpbAwxDY=; b=GGpDNSVgX18oNmBp2jWV2RcKzaChDwYVW0vRI6zzoVIKQOuPlGqXa1K/4e44b+bL94mfOf xkyNibuJKekW5dmdUsDHqTGAuR2A1HcX5ZgEDg0BdSF3ZVigHngjLJLJGRMGS6jE3iJLeR jOgCbnNZmCFZWNYfHHRnFYbCA0ibcuA= X-MC-Unique: QZwM9g0VPHqwVgKb59fK1g-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 07/12] vhost: Add VhostVDPAStartOp operation Date: Sat, 16 Jul 2022 13:34:02 +0200 Message-Id: <20220716113407.2730331-8-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971904737100001 It allows to run commands at start of the device, before it have enabled any queue. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-shadow-virtqueue.h | 3 +++ include/hw/virtio/vhost-vdpa.h | 5 +++++ hw/virtio/vhost-vdpa.c | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/hw/virtio/vhost-shadow-virtqueue.h b/hw/virtio/vhost-shadow-vi= rtqueue.h index 03eb7ff670..210fe393cd 100644 --- a/hw/virtio/vhost-shadow-virtqueue.h +++ b/hw/virtio/vhost-shadow-virtqueue.h @@ -26,6 +26,8 @@ typedef struct SVQDescState { } SVQDescState; =20 typedef struct VhostShadowVirtqueue VhostShadowVirtqueue; +typedef int (*ShadowVirtQueueStart)(VhostShadowVirtqueue *svq, + void *opaque); =20 /** * Callback to handle an avail buffer. @@ -43,6 +45,7 @@ typedef int (*VirtQueueAvailCallback)(VhostShadowVirtqueu= e *svq, void *vq_callback_opaque); =20 typedef struct VhostShadowVirtqueueOps { + ShadowVirtQueueStart start; VirtQueueAvailCallback avail_handler; } VhostShadowVirtqueueOps; =20 diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h index d10a89303e..b7d18b4e30 100644 --- a/include/hw/virtio/vhost-vdpa.h +++ b/include/hw/virtio/vhost-vdpa.h @@ -24,6 +24,10 @@ typedef struct VhostVDPAHostNotifier { void *addr; } VhostVDPAHostNotifier; =20 +struct vhost_vdpa; +/* Called after send DRIVER_OK but after enabling vrings */ +typedef int (*VhostVDPAStartOp)(struct vhost_vdpa *v); + typedef struct vhost_vdpa { int device_fd; int index; @@ -39,6 +43,7 @@ typedef struct vhost_vdpa { GPtrArray *shadow_vqs; const VhostShadowVirtqueueOps *shadow_vq_ops; void *shadow_vq_ops_opaque; + VhostVDPAStartOp start_op; struct vhost_dev *dev; VhostVDPAHostNotifier notifier[VIRTIO_QUEUE_MAX]; } VhostVDPA; diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 1d8829c619..48f031b8c0 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1136,6 +1136,14 @@ static int vhost_vdpa_dev_start(struct vhost_dev *de= v, bool started) if (unlikely(r)) { return r; } + + if (v->start_op) { + r =3D v->start_op(v); + if (unlikely(r)) { + return r; + } + } + vhost_vdpa_set_vring_ready(dev); } else { vhost_vdpa_reset_device(dev); --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971746; cv=none; d=zohomail.com; s=zohoarc; b=R50AFgRqkvnR0d8Vtt+S1zvuE5D8g7jmzjWedjoBy3A8SZHIltLsGnDYNjRJh+4GJFqY0mjkRvC9c12RKp+NCgcvEbOiHuFRJ0I+SM3qSI47aYdB0HVj3ZUP6cR1L4O4Psx8AfjJHwY2s5OZZooBsG0LFk2LLnNt1l42ieVxR1s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971746; 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=oNeUoTTGq69aLf2Omwl8Y+wmoKgnPv6It5bysav20XY=; b=BQ+xF85f0RgYl5BGeQYXPnNxD2nuO3bw7UnSlU6BpeKdh0OwsGO1odzNaTwHSUE41+7Z4DUrSrO8+rLljxZj0xi/RI34opUSraRhin9p0vrSD18CDe309wYhrwPYFn/uH83Gz4YcxFeEJZPDF3b7NYOaX6MCsmES3Tapw60eMec= 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 165797174648977.36764736814416; Sat, 16 Jul 2022 04:42:26 -0700 (PDT) Received: from localhost ([::1]:44994 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCgBl-0001l3-Gi for importer@patchew.org; Sat, 16 Jul 2022 07:42:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4e-0006cZ-HX for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:04 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:45173) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4c-00071W-Um for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:04 -0400 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-45-GkvFyXV-OVydVa_EAu6RJA-1; Sat, 16 Jul 2022 07:34:56 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0DDC11C05B16; Sat, 16 Jul 2022 11:34:56 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id C322C40E80E0; Sat, 16 Jul 2022 11:34:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971301; 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=oNeUoTTGq69aLf2Omwl8Y+wmoKgnPv6It5bysav20XY=; b=Zad3mYD9wo9iYs1ZOqHgY8XCobjhbvCzjy7ZJjW+GKm4irB0dBJP02yXNyS9vc2V97B03E gHb9WV+6SQfRkueKrUXwq5BeSPv3SuppFNFpv5Ze1fbn82Fp7wsib2M3iBnRVmFXwra3Qy M9X/o4ztlc9/Dj2xGeUADkH+EgrQSAs= X-MC-Unique: GkvFyXV-OVydVa_EAu6RJA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 08/12] vdpa: Add vhost_vdpa_start_control_svq Date: Sat, 16 Jul 2022 13:34:03 +0200 Message-Id: <20220716113407.2730331-9-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971747828100003 As a first step we only enable CVQ first than others. Future patches add state restore. Signed-off-by: Eugenio P=C3=A9rez --- net/vhost-vdpa.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 986e6414b4..211bd0468b 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -334,6 +334,18 @@ static bool vhost_vdpa_net_cvq_map_elem(VhostVDPAState= *s, return true; } =20 +static int vhost_vdpa_start_control_svq(struct vhost_vdpa *v) +{ + struct vhost_vring_state state =3D { + .index =3D v->dev->vq_index, + .num =3D 1, + }; + int r; + + r =3D ioctl(v->device_fd, VHOST_VDPA_SET_VRING_ENABLE, &state); + return r < 0 ? -errno : r; +} + /** * Do not forward commands not supported by SVQ. Otherwise, the device cou= ld * accept it and qemu would not know how to update the device model. @@ -493,6 +505,7 @@ static NetClientState *net_vhost_vdpa_init(NetClientSta= te *peer, vhost_vdpa_net_cvq_cmd_page_le= n()); memset(s->cvq_cmd_in_buffer, 0, vhost_vdpa_net_cvq_cmd_page_len()); =20 + s->vhost_vdpa.start_op =3D vhost_vdpa_start_control_svq; s->vhost_vdpa.shadow_vq_ops =3D &vhost_vdpa_net_svq_ops; s->vhost_vdpa.shadow_vq_ops_opaque =3D s; error_setg(&s->vhost_vdpa.migration_blocker, --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971469; cv=none; d=zohomail.com; s=zohoarc; b=ERSgQTOtmkUqG9ftobCcSUCnhvQ7odMEbOtpNoOL56TVRLkXVKQl+UBwxoUvBXr9YREURmjw/AvFwNJ8OJzrwF1EH4C0uHWlpFCiFhIi2FFOB0S4yN/iv97KlFdMo+x8lLA5Gb7D5PtL9Q3vchtwvsqnvcSbGr0c4xDrXBoZ9uQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971469; 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=VVSusz7M7s+iAx9yMPEpxY5RDUzqMZvMNxJAkjUc31Q=; b=ACarwlm3FmQkN+2SDGnQ683qSZMj8gvpu0SxzswvSUA7/FJuNlGNxppQH9EdOTIVUAG/j6bexpKs1r999yMGZJGnDOnSYSAhGfXHhJZSMme3rhDCNyN9Mgfkor4yYxYthRDlby2uOorOP2k2fWHh3qKVsk3EeFXQRC7jpFakyVM= 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 1657971469774953.5714003030049; Sat, 16 Jul 2022 04:37:49 -0700 (PDT) Received: from localhost ([::1]:34470 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCg7H-000394-PD for importer@patchew.org; Sat, 16 Jul 2022 07:37:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52984) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4i-0006oB-WE for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:25394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4h-0007Dr-7X for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:08 -0400 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-272-pt_JuQVqMeWRNZzLU8ykWg-1; Sat, 16 Jul 2022 07:35:02 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EF9F92932499; Sat, 16 Jul 2022 11:35:01 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8643640E80E0; Sat, 16 Jul 2022 11:34:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971306; 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=VVSusz7M7s+iAx9yMPEpxY5RDUzqMZvMNxJAkjUc31Q=; b=LjHQtx8pQCSAe49Gbu6NG3AyN2RXTYkmXUC/VkbvaMA4dhw2OyVAbzIgG5sy7SNdRLLQPN Gq8Z0H5ubEiEMXevsu43C8VO75YYtQtXy4PAkP8jyVgXxd9BEGkWT0UWyoDlPjWbfOLkZX Tje3iKDCCj1y5nCmjMnYI2OF55Ny0bc= X-MC-Unique: pt_JuQVqMeWRNZzLU8ykWg-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 09/12] vdpa: Extract vhost_vdpa_net_svq_add from vhost_vdpa_net_handle_ctrl_avail Date: Sat, 16 Jul 2022 13:34:04 +0200 Message-Id: <20220716113407.2730331-10-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971470750100001 So we can reuse to inject state messages. Signed-off-by: Eugenio P=C3=A9rez --- net/vhost-vdpa.c | 89 +++++++++++++++++++++++++++--------------------- 1 file changed, 51 insertions(+), 38 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 211bd0468b..aaae51a778 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -334,6 +334,54 @@ static bool vhost_vdpa_net_cvq_map_elem(VhostVDPAState= *s, return true; } =20 +static virtio_net_ctrl_ack vhost_vdpa_net_svq_add(VhostShadowVirtqueue *sv= q, + const struct iovec *dev_buf= fers) +{ + /* in buffer used for device model */ + virtio_net_ctrl_ack status; + const struct iovec in =3D { + .iov_base =3D &status, + .iov_len =3D sizeof(status), + }; + size_t dev_written; + int r; + void *unused =3D (void *)1; + + r =3D vhost_svq_add(svq, &dev_buffers[0], 1, &dev_buffers[1], 1, unuse= d); + if (unlikely(r !=3D 0)) { + if (unlikely(r =3D=3D -ENOSPC)) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: No space on device queue\n= ", + __func__); + } + return VIRTIO_NET_ERR; + } + + /* + * We can poll here since we've had BQL from the time we sent the + * descriptor. Also, we need to take the answer before SVQ pulls by it= self, + * when BQL is released + */ + dev_written =3D vhost_svq_poll(svq); + if (unlikely(dev_written < sizeof(status))) { + error_report("Insufficient written data (%zu)", dev_written); + return VIRTIO_NET_ERR; + } + + memcpy(&status, dev_buffers[1].iov_base, sizeof(status)); + if (status !=3D VIRTIO_NET_OK) { + return VIRTIO_NET_ERR; + } + + status =3D VIRTIO_NET_ERR; + virtio_net_handle_ctrl_iov(svq->vdev, &in, 1, dev_buffers, 1); + if (status !=3D VIRTIO_NET_OK) { + error_report("Bad CVQ processing in model"); + return VIRTIO_NET_ERR; + } + + return VIRTIO_NET_OK; +} + static int vhost_vdpa_start_control_svq(struct vhost_vdpa *v) { struct vhost_vring_state state =3D { @@ -392,19 +440,13 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShad= owVirtqueue *svq, void *opaque) { VhostVDPAState *s =3D opaque; - size_t in_len, dev_written; + size_t in_len; virtio_net_ctrl_ack status =3D VIRTIO_NET_ERR; /* out and in buffers sent to the device */ struct iovec dev_buffers[2] =3D { { .iov_base =3D s->cvq_cmd_out_buffer }, { .iov_base =3D s->cvq_cmd_in_buffer }, }; - /* in buffer used for device model */ - const struct iovec in =3D { - .iov_base =3D &status, - .iov_len =3D sizeof(status), - }; - int r; bool ok; =20 ok =3D vhost_vdpa_net_cvq_map_elem(s, elem, dev_buffers); @@ -417,36 +459,7 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShado= wVirtqueue *svq, goto out; } =20 - r =3D vhost_svq_add(svq, &dev_buffers[0], 1, &dev_buffers[1], 1, elem); - if (unlikely(r !=3D 0)) { - if (unlikely(r =3D=3D -ENOSPC)) { - qemu_log_mask(LOG_GUEST_ERROR, "%s: No space on device queue\n= ", - __func__); - } - goto out; - } - - /* - * We can poll here since we've had BQL from the time we sent the - * descriptor. Also, we need to take the answer before SVQ pulls by it= self, - * when BQL is released - */ - dev_written =3D vhost_svq_poll(svq); - if (unlikely(dev_written < sizeof(status))) { - error_report("Insufficient written data (%zu)", dev_written); - goto out; - } - - memcpy(&status, dev_buffers[1].iov_base, sizeof(status)); - if (status !=3D VIRTIO_NET_OK) { - goto out; - } - - status =3D VIRTIO_NET_ERR; - virtio_net_handle_ctrl_iov(svq->vdev, &in, 1, dev_buffers, 1); - if (status !=3D VIRTIO_NET_OK) { - error_report("Bad CVQ processing in model"); - } + status =3D vhost_vdpa_net_svq_add(svq, dev_buffers); =20 out: in_len =3D iov_from_buf(elem->in_sg, elem->in_num, 0, &status, @@ -462,7 +475,7 @@ out: if (dev_buffers[1].iov_base) { vhost_vdpa_cvq_unmap_buf(&s->vhost_vdpa, dev_buffers[1].iov_base); } - return r; + return status =3D=3D VIRTIO_NET_OK ? 0 : 1; } =20 static const VhostShadowVirtqueueOps vhost_vdpa_net_svq_ops =3D { --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971665; cv=none; d=zohomail.com; s=zohoarc; b=IPHyVLuYMfVFvKMORbOeK1FQP9l+z6MY9sck7J0cZmWvdOdse92Y+CRO8tF14wM7TTWN5kq34i3G1F49TEUTO5BcpnUBNe/lvWAiz0VBCq9hHsUbTfnrMo3c+aVVmx5qT65mxgDf8GDrXU3Tx8zKPYW0yT9Q2mgox7xPb38PqfQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971665; 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=IMIjFvI1Vq0iV/VkNT2y2sFWrcY9BW6brdW9oxW2Xvk=; b=IQM/zRfJTeS9zzJnXbKAoix+WJQ8rHb9BKgWTXOu/H0i29EbykbGGDxPVi0nVFNuZKm7JID+EZ41FJnxGFOdacSFLGajE1HQ6gnK8eDjvRPY5r79RdFHOjjcR/dHUhCGhs+2CCg5f5M0KeNycxKPkrbxacMax/mWd3SKsUZNr3o= 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 1657971665778695.0482379615777; Sat, 16 Jul 2022 04:41:05 -0700 (PDT) Received: from localhost ([::1]:42994 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCgAS-0000PS-PU for importer@patchew.org; Sat, 16 Jul 2022 07:41:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53020) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4o-0006z0-D1 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:15 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:34724) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4m-0007Ea-UJ for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:14 -0400 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-437-O2RNuLRVM3utk7Jt-dbQPg-1; Sat, 16 Jul 2022 07:35:07 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 80BDF3C0CD5B; Sat, 16 Jul 2022 11:35:06 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id 630CD40E80E0; Sat, 16 Jul 2022 11:35:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971312; 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=IMIjFvI1Vq0iV/VkNT2y2sFWrcY9BW6brdW9oxW2Xvk=; b=ICTedSoFB8uSncEWSbOpDM/537mEhBg/v6FhRECwTGul+wUrgMEN9x6rMQAKR9m1y8YFwn AX2PWYiAFq2RGmsFgXwq/D4COjmEiv91u0GbLxV3G99R5bcYWwORDPRl6DaI78IFh8OOUi F/H5GYoUmfteexjUNl+OUOjLgBxOneo= X-MC-Unique: O2RNuLRVM3utk7Jt-dbQPg-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 10/12] vdpa: Make vhost_vdpa_net_cvq_map_elem accept any out sg Date: Sat, 16 Jul 2022 13:34:05 +0200 Message-Id: <20220716113407.2730331-11-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971667554100001 So its generic enough to accept any out sg buffer and we can inject NIC state messages. Signed-off-by: Eugenio P=C3=A9rez --- net/vhost-vdpa.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index aaae51a778..0183fce353 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -302,35 +302,36 @@ dma_map_err: } =20 /** - * Copy the guest element into a dedicated buffer suitable to be sent to N= IC + * Maps out sg and in buffer into dedicated buffers suitable to be sent to= NIC * - * @iov: [0] is the out buffer, [1] is the in one + * @dev_iov: [0] is the out buffer, [1] is the in one */ -static bool vhost_vdpa_net_cvq_map_elem(VhostVDPAState *s, - VirtQueueElement *elem, - struct iovec *iov) +static bool vhost_vdpa_net_cvq_map_sg(VhostVDPAState *s, + const struct iovec *out, size_t out_= num, + struct iovec *dev_iov) { size_t in_copied; bool ok; =20 - iov[0].iov_base =3D s->cvq_cmd_out_buffer; - ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, elem->out_sg, elem->out_= num, - vhost_vdpa_net_cvq_cmd_len(), iov[0].iov_b= ase, - &iov[0].iov_len, false); + dev_iov[0].iov_base =3D s->cvq_cmd_out_buffer; + ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, out, out_num, + vhost_vdpa_net_cvq_cmd_len(), + dev_iov[0].iov_base, &dev_iov[0].iov_len, + false); if (unlikely(!ok)) { return false; } =20 - iov[1].iov_base =3D s->cvq_cmd_in_buffer; + dev_iov[1].iov_base =3D s->cvq_cmd_in_buffer; ok =3D vhost_vdpa_cvq_map_buf(&s->vhost_vdpa, NULL, 0, - sizeof(virtio_net_ctrl_ack), iov[1].iov_ba= se, - &in_copied, true); + sizeof(virtio_net_ctrl_ack), + dev_iov[1].iov_base, &in_copied, true); if (unlikely(!ok)) { vhost_vdpa_cvq_unmap_buf(&s->vhost_vdpa, s->cvq_cmd_out_buffer); return false; } =20 - iov[1].iov_len =3D sizeof(virtio_net_ctrl_ack); + dev_iov[1].iov_len =3D sizeof(virtio_net_ctrl_ack); return true; } =20 @@ -449,7 +450,7 @@ static int vhost_vdpa_net_handle_ctrl_avail(VhostShadow= Virtqueue *svq, }; bool ok; =20 - ok =3D vhost_vdpa_net_cvq_map_elem(s, elem, dev_buffers); + ok =3D vhost_vdpa_net_cvq_map_sg(s, elem->out_sg, elem->out_num, dev_b= uffers); if (unlikely(!ok)) { goto out; } --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971899; cv=none; d=zohomail.com; s=zohoarc; b=IIDHhCywLhyd5kObhEXWYWLVH11JUumCR68drVEv3Y2/t3W/hmYpYvklFTiu9nxE/uALVobiTzc5jskImJ9bAnV5xp6bPrh/U9sIA4+fmg/7k0LOqyoHJ1u1qW0BSPxXfq+QWmxT3V/2U8nFHmOaGA4X7Zo9uT0hea5HWEHAz94= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971899; 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=uh45UoidiDgk6PrTkeYV4fUgwT7KiBhFuzjsVW4W4kg=; b=VVhwT1gVsPPpCZEhnc68sjRRodroK6FHstjcqUx5QCxe6M0ZIId6Oo6xRnn1ZWyhXrMlCAnqEzDuInSaaCNjcS/8dBvAWEjJje8Z1SzemIoFHU+w6lHBMpfVS0Q6fdo3DNvczmWKlLjfJJRKrH2ffiJBbQ+IsOGm/E11TcYe9aU= 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 1657971899331577.3635183283299; Sat, 16 Jul 2022 04:44:59 -0700 (PDT) Received: from localhost ([::1]:51020 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCgED-0005wq-51 for importer@patchew.org; Sat, 16 Jul 2022 07:44:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53034) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4r-00073C-3T for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:48145) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4p-0007Ej-J6 for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:16 -0400 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-65-Vj1B96lYPyiuu-f22snO8A-1; Sat, 16 Jul 2022 07:35:11 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1B82B380450A; Sat, 16 Jul 2022 11:35:11 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id D5ED440E80E0; Sat, 16 Jul 2022 11:35:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971314; 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=uh45UoidiDgk6PrTkeYV4fUgwT7KiBhFuzjsVW4W4kg=; b=aOxQfHL99zLh30H3VtvyOxfMDZkgOcmJWbPk6Q2Wo8JvjfZmuvXTjxiR+F6vDnhu2gwTVQ 0BdCmoqjD6/UnUajA0mIHm2yGC3ctQsPszwgdcQDmegzCPL8vjKIfNi10eMtr2y0UIJzkl /Q5s9JKIQb2BdoCqA0jwlrr+L1j4isM= X-MC-Unique: Vj1B96lYPyiuu-f22snO8A-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 11/12] vdpa: Add virtio-net mac address via CVQ at start Date: Sat, 16 Jul 2022 13:34:06 +0200 Message-Id: <20220716113407.2730331-12-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971901132100001 This is needed so the destination vdpa device see the same state a the guest set in the source. Signed-off-by: Eugenio P=C3=A9rez --- net/vhost-vdpa.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 0183fce353..2873be2ba4 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -383,7 +383,7 @@ static virtio_net_ctrl_ack vhost_vdpa_net_svq_add(Vhost= ShadowVirtqueue *svq, return VIRTIO_NET_OK; } =20 -static int vhost_vdpa_start_control_svq(struct vhost_vdpa *v) +static int vhost_vdpa_enable_control_svq(struct vhost_vdpa *v) { struct vhost_vring_state state =3D { .index =3D v->dev->vq_index, @@ -395,6 +395,57 @@ static int vhost_vdpa_start_control_svq(struct vhost_v= dpa *v) return r < 0 ? -errno : r; } =20 +static int vhost_vdpa_start_control_svq(struct vhost_vdpa *v) +{ + + VirtIONet *n =3D VIRTIO_NET(v->dev->vdev); + uint64_t features =3D v->dev->vdev->host_features; + VhostShadowVirtqueue *svq =3D g_ptr_array_index(v->shadow_vqs, 0); + VhostVDPAState *s =3D container_of(v, VhostVDPAState, vhost_vdpa); + int r; + + r =3D vhost_vdpa_enable_control_svq(v); + if (unlikely(r < 0)) { + return r; + } + + if (features & BIT_ULL(VIRTIO_NET_F_CTRL_MAC_ADDR)) { + const struct virtio_net_ctrl_hdr ctrl =3D { + .class =3D VIRTIO_NET_CTRL_MAC, + .cmd =3D VIRTIO_NET_CTRL_MAC_ADDR_SET, + }; + uint8_t mac[6]; + const struct iovec out[] =3D { + { + .iov_base =3D (void *)&ctrl, + .iov_len =3D sizeof(ctrl), + },{ + .iov_base =3D mac, + .iov_len =3D sizeof(mac), + }, + }; + struct iovec dev_buffers[2] =3D { + { .iov_base =3D s->cvq_cmd_out_buffer }, + { .iov_base =3D s->cvq_cmd_in_buffer }, + }; + bool ok; + virtio_net_ctrl_ack state; + + ok =3D vhost_vdpa_net_cvq_map_sg(s, out, ARRAY_SIZE(out), dev_buff= ers); + if (unlikely(!ok)) { + return -1; + } + + memcpy(mac, n->mac, sizeof(mac)); + state =3D vhost_vdpa_net_svq_add(svq, dev_buffers); + vhost_vdpa_cvq_unmap_buf(v, dev_buffers[0].iov_base); + vhost_vdpa_cvq_unmap_buf(v, dev_buffers[1].iov_base); + return state =3D=3D VIRTIO_NET_OK ? 0 : 1; + } + + return 0; +} + /** * Do not forward commands not supported by SVQ. Otherwise, the device cou= ld * accept it and qemu would not know how to update the device model. --=20 2.31.1 From nobody Sun Feb 8 05:23:38 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=1657971743; cv=none; d=zohomail.com; s=zohoarc; b=a+2VSoaODuxlPcVsLM1/04+COlSls/LM1X5kSIhAanLf4i3Xw5MyB08GKQ1dfd+7DqpeoOeIaZNQrJKBiNRj4v3AQO5PttkgXv3cgTaJufd944QZIx6tuSuSGcSUdyH3mnVT7k3lmvqqL3X4UepKRoSFWahHZaY93KvWul2SL3c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657971743; 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=+seEPHcsl3Nzny/lum8p7nOsy06VemDHLYSkMQIPmC8=; b=QIkW82Q2uvrTV238E+Cs/KxdiqIRmkXOs417tYFCniCIIxEzwW4DVGxOu1FthHU6MGSr2nWq8HJfCH3n+0jVhdK3qo4VPg0T3vtwBK3TtTSK3pYtzPs7EK0ysQnKJPtIBU7tv3GSx6gz88xBATrJjLZPhxELU9l5u5O310ucVvk= 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 1657971743677666.2758304328123; Sat, 16 Jul 2022 04:42:23 -0700 (PDT) Received: from localhost ([::1]:44902 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oCgBi-0001hJ-Lf for importer@patchew.org; Sat, 16 Jul 2022 07:42:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53068) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4v-0007F8-Mk for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:44443) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oCg4u-0007F2-4v for qemu-devel@nongnu.org; Sat, 16 Jul 2022 07:35:21 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-486-vwjvwVVWNCGEoQzADFGSGw-1; Sat, 16 Jul 2022 07:35:16 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CBA94185A7A4; Sat, 16 Jul 2022 11:35:15 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.64]) by smtp.corp.redhat.com (Postfix) with ESMTP id AF0C440E80E0; Sat, 16 Jul 2022 11:35:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657971319; 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=+seEPHcsl3Nzny/lum8p7nOsy06VemDHLYSkMQIPmC8=; b=W9qLSRDorPMssxNAoMcCvLMeLN9s0PObjKyE13G4uOoQ4J+v2Tp7qsXZIy7M84X2oI4ihS MMEEtIj2zPLco06fKpVJXIaVzyA2q/8vSNaSaP347sgLDe3ylI7vOLM8ihjosFiaOTymvg XHu9l951Rq/zXSO4jDEExEBBfQ0vPZs= X-MC-Unique: vwjvwVVWNCGEoQzADFGSGw-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Stefano Garzarella , Laurent Vivier , Eli Cohen , Parav Pandit , Markus Armbruster , Eric Blake , Zhu Lingshan , Paolo Bonzini , "Michael S. Tsirkin" , Cindy Lu , Cornelia Huck , Liuxiangdong , Jason Wang , Stefan Hajnoczi , "Gonglei (Arei)" , Gautam Dawar Subject: [RFC PATCH 12/12] vdpa: Delete CVQ migration blocker Date: Sat, 16 Jul 2022 13:34:07 +0200 Message-Id: <20220716113407.2730331-13-eperezma@redhat.com> In-Reply-To: <20220716113407.2730331-1-eperezma@redhat.com> References: <20220716113407.2730331-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 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: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1657971745878100001 We can restore the device state in the destination via CVQ now. Remove the migration blocker. Signed-off-by: Eugenio P=C3=A9rez --- include/hw/virtio/vhost-vdpa.h | 1 - hw/virtio/vhost-vdpa.c | 11 ----------- net/vhost-vdpa.c | 2 -- 3 files changed, 14 deletions(-) diff --git a/include/hw/virtio/vhost-vdpa.h b/include/hw/virtio/vhost-vdpa.h index b7d18b4e30..85b8a53052 100644 --- a/include/hw/virtio/vhost-vdpa.h +++ b/include/hw/virtio/vhost-vdpa.h @@ -39,7 +39,6 @@ typedef struct vhost_vdpa { bool shadow_vqs_enabled; /* IOVA mapping used by the Shadow Virtqueue */ VhostIOVATree *iova_tree; - Error *migration_blocker; GPtrArray *shadow_vqs; const VhostShadowVirtqueueOps *shadow_vq_ops; void *shadow_vq_ops_opaque; diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 48f031b8c0..80bf461cf8 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -1028,13 +1028,6 @@ static bool vhost_vdpa_svqs_start(struct vhost_dev *= dev) return true; } =20 - if (v->migration_blocker) { - int r =3D migrate_add_blocker(v->migration_blocker, &err); - if (unlikely(r < 0)) { - goto err_migration_blocker; - } - } - for (i =3D 0; i < v->shadow_vqs->len; ++i) { VirtQueue *vq =3D virtio_get_queue(dev->vdev, dev->vq_index + i); VhostShadowVirtqueue *svq =3D g_ptr_array_index(v->shadow_vqs, i); @@ -1076,7 +1069,6 @@ err_svq_setup: vhost_svq_stop(svq); } =20 -err_migration_blocker: error_reportf_err(err, "Cannot setup SVQ %u: ", i); =20 return false; @@ -1098,9 +1090,6 @@ static bool vhost_vdpa_svqs_stop(struct vhost_dev *de= v) } } =20 - if (v->migration_blocker) { - migrate_del_blocker(v->migration_blocker); - } return true; } =20 diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c index 2873be2ba4..80ea9a1412 100644 --- a/net/vhost-vdpa.c +++ b/net/vhost-vdpa.c @@ -573,8 +573,6 @@ static NetClientState *net_vhost_vdpa_init(NetClientSta= te *peer, s->vhost_vdpa.start_op =3D vhost_vdpa_start_control_svq; s->vhost_vdpa.shadow_vq_ops =3D &vhost_vdpa_net_svq_ops; s->vhost_vdpa.shadow_vq_ops_opaque =3D s; - error_setg(&s->vhost_vdpa.migration_blocker, - "Migration disabled: vhost-vdpa uses CVQ."); } ret =3D vhost_vdpa_add(nc, (void *)&s->vhost_vdpa, queue_pair_index, n= vqs); if (ret) { --=20 2.31.1