From nobody Mon Feb 9 17:37:44 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=1658497888; cv=none; d=zohomail.com; s=zohoarc; b=GMRSZ3hpXmR/wKRR3RSKXSECgIvDP64pZK5s9iLEYIMapS+iLiLCd61qdLTRpsK5FtB2/4WJhqMq5jLuNy4rizambn8tD+qvlMeQkUPh7ymvAhmTSvP6s1fvL2n/rQdecfT7Pcsz6FI+m307I6HBx1by5foHnPy3ymLFMSe8npM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1658497888; 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=uKeoDkuMnDPBvPYEav6Tme3YMEj5Kd+2LSurbe+M/jE=; b=Xk9/8dKV7oQL94WfDc7T4IxjUy1H/NXk5LpVUusshNrFcvMUBmHyssBJg7wEm6A0BBq1i31T6ATWa4GqUqk75MRxHWXsfznkR1c9ivzxGkrLc+7Aik59ULH4Gmv835HV3OwtncZCOuMjTxhlEAqXdc8uPYUfVEbmFjGQmVPr5jA= 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 1658497888104454.32824999414174; Fri, 22 Jul 2022 06:51:28 -0700 (PDT) Received: from localhost ([::1]:38612 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oEt3u-00085Q-Mn for importer@patchew.org; Fri, 22 Jul 2022 09:51:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47250) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEswN-0004wJ-FL for qemu-devel@nongnu.org; Fri, 22 Jul 2022 09:43:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:53835) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEswL-0004Iw-Sh for qemu-devel@nongnu.org; Fri, 22 Jul 2022 09:43:39 -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-193-8eerI2kJO4eTUUVK-7yfsA-1; Fri, 22 Jul 2022 09:43:32 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B5B393826A45; Fri, 22 Jul 2022 13:43:31 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.194.161]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1D9A3401E54; Fri, 22 Jul 2022 13:43:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658497417; 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=uKeoDkuMnDPBvPYEav6Tme3YMEj5Kd+2LSurbe+M/jE=; b=WFAuI1K2B/JbWfhR/Jxc5LUgebHGcfqk71jIG2JDVbTGyYQ7F1ZhCg5JyHHsK2XZH8+V9R +MyuFTDoidIfd6mn+6h/VaDVqMEsKVoLTqzLsWlWJ1y8+VQoYFJgxcjNUfQO/6FLZg5gJn FWGdK7hJYAedoD3xXBnhU88FW8Oc4Sk= X-MC-Unique: 8eerI2kJO4eTUUVK-7yfsA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Jason Wang , Harpreet Singh Anand , Cindy Lu , Cornelia Huck , kvm@vger.kernel.org, Parav Pandit , Stefan Hajnoczi , "Gonglei (Arei)" , "Michael S. Tsirkin" , Zhu Lingshan , Liuxiangdong , Gautam Dawar , Paolo Bonzini , Stefano Garzarella , Eli Cohen , Laurent Vivier Subject: [PATCH v2 3/7] vdpa: Allocate SVQ unconditionally Date: Fri, 22 Jul 2022 15:43:14 +0200 Message-Id: <20220722134318.3430667-4-eperezma@redhat.com> In-Reply-To: <20220722134318.3430667-1-eperezma@redhat.com> References: <20220722134318.3430667-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.85 on 10.11.54.10 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: 1658497889465100001 SVQ may run or not in a device depending on runtime conditions (for example, if the device can move CVQ to its own group or not). Allocate the resources unconditionally, and decide later if to use them or not. Signed-off-by: Eugenio P=C3=A9rez --- hw/virtio/vhost-vdpa.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 897e1fdd47..e1ed56b26d 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -400,6 +400,21 @@ static int vhost_vdpa_init_svq(struct vhost_dev *hdev,= struct vhost_vdpa *v, int r; bool ok; =20 + shadow_vqs =3D g_ptr_array_new_full(hdev->nvqs, vhost_svq_free); + for (unsigned n =3D 0; n < hdev->nvqs; ++n) { + g_autoptr(VhostShadowVirtqueue) svq; + + svq =3D vhost_svq_new(v->iova_tree, v->shadow_vq_ops, + v->shadow_vq_ops_opaque); + if (unlikely(!svq)) { + error_setg(errp, "Cannot create svq %u", n); + return -1; + } + g_ptr_array_add(shadow_vqs, g_steal_pointer(&svq)); + } + + v->shadow_vqs =3D g_steal_pointer(&shadow_vqs); + if (!v->shadow_vqs_enabled) { return 0; } @@ -416,20 +431,6 @@ static int vhost_vdpa_init_svq(struct vhost_dev *hdev,= struct vhost_vdpa *v, return -1; } =20 - shadow_vqs =3D g_ptr_array_new_full(hdev->nvqs, vhost_svq_free); - for (unsigned n =3D 0; n < hdev->nvqs; ++n) { - g_autoptr(VhostShadowVirtqueue) svq; - - svq =3D vhost_svq_new(v->iova_tree, v->shadow_vq_ops, - v->shadow_vq_ops_opaque); - if (unlikely(!svq)) { - error_setg(errp, "Cannot create svq %u", n); - return -1; - } - g_ptr_array_add(shadow_vqs, g_steal_pointer(&svq)); - } - - v->shadow_vqs =3D g_steal_pointer(&shadow_vqs); return 0; } =20 @@ -570,10 +571,6 @@ static void vhost_vdpa_svq_cleanup(struct vhost_dev *d= ev) struct vhost_vdpa *v =3D dev->opaque; size_t idx; =20 - if (!v->shadow_vqs) { - return; - } - for (idx =3D 0; idx < v->shadow_vqs->len; ++idx) { vhost_svq_stop(g_ptr_array_index(v->shadow_vqs, idx)); } --=20 2.31.1