From nobody Fri Nov 14 21:05:55 2025 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=yandex-team.ru ARC-Seal: i=1; a=rsa-sha256; t=1760614986; cv=none; d=zohomail.com; s=zohoarc; b=Ig8pI6ZV2VGjxeRCuK60+8RQd0CQujR/yzPnFbls8wYHJpRIeS2NNiURa41wFMlzazyugMW7CRnGHVV4loDEF4RsW+WhkFxZNRRzr8mYmrSSR3KJ4SW29u3E/zI+6hnhc3WFsqP8ACWcUwBnoqaC3dljXqQAi1CxfsQnm3TClns= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760614986; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/c9vHUY6t9wfX6BiEAXJfYRSmsDMfiIQQ+vKZjiVzb0=; b=PTcX9sQbDtrcEz47q9UC/VnkGr4GtAeIAxh1LMXMxZiVhp9f6ttfBQV2njVNbk/X+u3ClWwLxOld7rktWkXmmMHJQf1j5kXAMvJBO2YqDP+z/gPc6kTFHMygGulp8d0cqmDgSM/9jX1u0vD/NvteDuqpA7ecWNiwSETnFXXkrUc= 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 1760614985653328.63891526438783; Thu, 16 Oct 2025 04:43:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v9MMi-00076J-GR; Thu, 16 Oct 2025 07:41:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9MMU-00074M-5Q; Thu, 16 Oct 2025 07:41:38 -0400 Received: from forwardcorp1a.mail.yandex.net ([2a02:6b8:c0e:500:1:45:d181:df01]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v9MMP-0003T5-3e; Thu, 16 Oct 2025 07:41:37 -0400 Received: from mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net [IPv6:2a02:6b8:c1f:3a87:0:640:845c:0]) by forwardcorp1a.mail.yandex.net (Yandex) with ESMTPS id A7E4CC01BE; Thu, 16 Oct 2025 14:41:24 +0300 (MSK) Received: from vsementsov-lin.. (unknown [2a02:6bf:8080:a8c::1:19]) by mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id LfP2M73FEmI0-BlswLnpY; Thu, 16 Oct 2025 14:41:24 +0300 Precedence: bulk X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1760614884; bh=/c9vHUY6t9wfX6BiEAXJfYRSmsDMfiIQQ+vKZjiVzb0=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=MafyoRUcLEbYcdoJ+sEz3cvhWuIXSu+2B6TXBp1MEhbJBG4eiapp4lN1KGFgoNsxo 4LT5CrmsXyJ02ntsF1j6o/pEJd5VbnFpUMm6+2kvrCUZskSlnumNwLD3mibuQM4jTm J1heqg+91rRWAn61Xw5ilmB5TxQ/EEOetpeWVZl4= Authentication-Results: mail-nwsmtp-smtp-corp-main-69.vla.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: raphael@enfabrica.net, pbonzini@redhat.com, farosas@suse.de Cc: mst@redhat.com, sgarzare@redhat.com, marcandre.lureau@redhat.com, kwolf@redhat.com, hreitz@redhat.com, berrange@redhat.com, eblake@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org, qemu-block@nongnu.org, steven.sistare@oracle.com, vsementsov@yandex-team.ru, yc-core@yandex-team.ru, d-tatianin@yandex-team.ru, jasowang@redhat.com Subject: [PATCH v2 02/25] vhost: reorder logic in vhost_dev_init() Date: Thu, 16 Oct 2025 14:40:39 +0300 Message-ID: <20251016114104.1384675-3-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20251016114104.1384675-1-vsementsov@yandex-team.ru> References: <20251016114104.1384675-1-vsementsov@yandex-team.ru> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a02:6b8:c0e:500:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1a.mail.yandex.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, 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 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @yandex-team.ru) X-ZM-MESSAGEID: 1760614990143158500 Content-Type: text/plain; charset="utf-8" We are going to split vhost_dev_init() so that the first part will do early initialization of QEMU structures, but don't communicate with backend, and the second part will do backend communication. We need this for future support for backend-transfer migration support for vhost-user-blk (backend will not be available in the early initialization point). With this commit, we simply reorder the logic in vhost_dev_init() in accordance with idea of further split. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Raphael Norwitz --- hw/virtio/vhost.c | 60 +++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index 9fc6e7ba65..551d1687fc 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -1637,26 +1637,6 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opa= que, goto fail; } =20 - r =3D hdev->vhost_ops->vhost_set_owner(hdev); - if (r < 0) { - error_setg_errno(errp, -r, "vhost_set_owner failed"); - goto fail; - } - - r =3D vhost_dev_init_features(hdev); - if (r < 0) { - error_setg_errno(errp, -r, "vhost_init_features failed"); - goto fail; - } - - for (i =3D 0; i < hdev->nvqs; ++i, ++n_initialized_vqs) { - r =3D vhost_virtqueue_init(hdev, hdev->vqs + i, hdev->vq_index + i= ); - if (r < 0) { - error_setg_errno(errp, -r, "Failed to initialize virtqueue %d"= , i); - goto fail; - } - } - hdev->memory_listener =3D (MemoryListener) { .name =3D "vhost", .begin =3D vhost_begin, @@ -1677,6 +1657,36 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opa= que, .region_del =3D vhost_iommu_region_del, }; =20 + hdev->mem =3D g_malloc0(offsetof(struct vhost_memory, regions)); + hdev->n_mem_sections =3D 0; + hdev->mem_sections =3D NULL; + hdev->log =3D NULL; + hdev->log_size =3D 0; + hdev->log_enabled =3D false; + hdev->started =3D false; + memory_listener_register(&hdev->memory_listener, &address_space_memory= ); + QLIST_INSERT_HEAD(&vhost_devices, hdev, entry); + + r =3D hdev->vhost_ops->vhost_set_owner(hdev); + if (r < 0) { + error_setg_errno(errp, -r, "vhost_set_owner failed"); + goto fail; + } + + r =3D vhost_dev_init_features(hdev); + if (r < 0) { + error_setg_errno(errp, -r, "vhost_init_features failed"); + goto fail; + } + + for (i =3D 0; i < hdev->nvqs; ++i, ++n_initialized_vqs) { + r =3D vhost_virtqueue_init(hdev, hdev->vqs + i, hdev->vq_index + i= ); + if (r < 0) { + error_setg_errno(errp, -r, "Failed to initialize virtqueue %d"= , i); + goto fail; + } + } + if (hdev->migration_blocker =3D=3D NULL) { if (!vhost_dev_has_feature_ex(hdev, VHOST_F_LOG_ALL)) { error_setg(&hdev->migration_blocker, @@ -1694,16 +1704,6 @@ int vhost_dev_init(struct vhost_dev *hdev, void *opa= que, } } =20 - hdev->mem =3D g_malloc0(offsetof(struct vhost_memory, regions)); - hdev->n_mem_sections =3D 0; - hdev->mem_sections =3D NULL; - hdev->log =3D NULL; - hdev->log_size =3D 0; - hdev->log_enabled =3D false; - hdev->started =3D false; - memory_listener_register(&hdev->memory_listener, &address_space_memory= ); - QLIST_INSERT_HEAD(&vhost_devices, hdev, entry); - if (!check_memslots(hdev, errp)) { r =3D -EINVAL; goto fail; --=20 2.48.1