From nobody Sun Feb 8 08:48:57 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=1665489896; cv=none; d=zohomail.com; s=zohoarc; b=Py7cs7K0zkw1L3Hkz1SgnB+S80MYYLExgHHpanLaz1cbGti0taSPXHtuZo3nCQT/9r4Y0z+kh61eO8pZM+5AOhp0b9ma8vL71h51cWUPtKj+WQ4zosFXiDW6GvZ+2UF20ZC71pgksfzbj5mbQB6LT+PMLZkJkdK0YnVkQpw4dZk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1665489896; 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=xtxKFnWxYar2cgRx3GrYp3WJGhmrWZQWUyc94CiOZQI=; b=YEev5lQDzGv7WlCh/IE43Rith8NjpAOTc4EPVoPB58/29lxTRSoIWsWi3HyFEsSj5lWwTuyCMuTgub+CLpm9dd+4q4xn1/XnTVWzoP20ct8i0Lc88UkZYquzvi0z2zkyCdIMvRL3BSiVd348InAoR6ufc7pVsb+RpCj95uGyr5k= 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 166548989693199.49706563537848; Tue, 11 Oct 2022 05:04:56 -0700 (PDT) Received: from localhost ([::1]:38754 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oiE0F-0005Az-Dt for importer@patchew.org; Tue, 11 Oct 2022 08:04:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oiCiG-0004d9-Qm for qemu-devel@nongnu.org; Tue, 11 Oct 2022 06:42:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:50011) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oiCiE-0007ng-2u for qemu-devel@nongnu.org; Tue, 11 Oct 2022 06:42:15 -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-370-dv2X6QnjPzeSZfnb0bWTwA-1; Tue, 11 Oct 2022 06:42:07 -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 02BA580280D; Tue, 11 Oct 2022 10:42:07 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.193.104]) by smtp.corp.redhat.com (Postfix) with ESMTP id D5452492B09; Tue, 11 Oct 2022 10:42:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665484932; 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=xtxKFnWxYar2cgRx3GrYp3WJGhmrWZQWUyc94CiOZQI=; b=V0BB3gnpD8o2XkzJvkGKlcXVA6PMsYjDIgZZR88qn+9q+XSL3KcM5yoNPyrGxuWSr/kb6v MRujJ0NcDGXzBhWp6sg8qc8jHp1bGXFE/ZNuaKNdN4NvzdQmdMUPLmuUke5bCQVrrQe38N 3b7hHwU4pBPTwHO3/YRKKGENtKdd+YA= X-MC-Unique: dv2X6QnjPzeSZfnb0bWTwA-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Gautam Dawar , "Michael S. Tsirkin" , Zhu Lingshan , Jason Wang , Si-Wei Liu , Paolo Bonzini , Eli Cohen , Parav Pandit , Laurent Vivier , Stefano Garzarella , Stefan Hajnoczi , "Gonglei (Arei)" , Cindy Lu , Liuxiangdong , Cornelia Huck , kvm@vger.kernel.org, Harpreet Singh Anand Subject: [PATCH v5 2/6] vdpa: Allocate SVQ unconditionally Date: Tue, 11 Oct 2022 12:41:50 +0200 Message-Id: <20221011104154.1209338-3-eperezma@redhat.com> In-Reply-To: <20221011104154.1209338-1-eperezma@redhat.com> References: <20221011104154.1209338-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.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.133.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1665489899303100001 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 7f0ff4df5b..d966966131 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -410,6 +410,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; } @@ -426,20 +441,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 @@ -580,10 +581,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