From nobody Sun Sep 28 16:35:47 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=1758276019; cv=none; d=zohomail.com; s=zohoarc; b=k/2Ov8muEjCAF+aKsCzFSKBUfabMk2AUjm/a2MmbbgQH63zmeAq1wqPKXCBXpH0xxY5FK5WnLt1b3jAIdTf3J8EzYKgv2zswioHg0qg4b7wX09JUa499zHwVxLRT/CfqxN1q/K4b1ZMNdn6Kq2gCwT0ljFOG2fy3qJQGXJdinUQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758276019; 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=5HYkPbO4hAPLbFB3eh6cxR13ZYd+5c7xqpnj9WYGlKA=; b=ZXLx/CTNmm26dibsRz9A52YN+MS/eq6HuzAEdmtNmLC9ReCOdNaRDqhufd9jTlK+8dtzQU52MZ7QVhrbfwCjq0d/D2bWLLIFDXR/FXZ/+zPYCSnq3pqut9+we7HPeQG2F56X3VGKaHfHx8o3BVXcAApM6jnK2etz8/ukyihb8ac= 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 1758276019280628.3695909793961; Fri, 19 Sep 2025 03:00:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uzXr7-0006H6-Lo; Fri, 19 Sep 2025 05:56:41 -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 1uzXqe-0005lU-Ql for qemu-devel@nongnu.org; Fri, 19 Sep 2025 05:56:13 -0400 Received: from forwardcorp1d.mail.yandex.net ([2a02:6b8:c41:1300: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 1uzXqa-0004bL-7r for qemu-devel@nongnu.org; Fri, 19 Sep 2025 05:56:12 -0400 Received: from mail-nwsmtp-smtp-corp-main-80.iva.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-80.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:1621:0:640:12d9:0]) by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id 6500380EF5; Fri, 19 Sep 2025 12:56:01 +0300 (MSK) Received: from vsementsov-lin.. (unknown [2a02:6bf:8080:a72::1:38]) by mail-nwsmtp-smtp-corp-main-80.iva.yp-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id ntP1fK1GvGk0-izTsWkir; Fri, 19 Sep 2025 12:56:00 +0300 Precedence: bulk X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1758275760; bh=5HYkPbO4hAPLbFB3eh6cxR13ZYd+5c7xqpnj9WYGlKA=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=O8PNS0M8q1PUQ+0d0seNOEuksM9LZ51zKKB4j32CXsFgEMLf2/BDCnwturFZM1iVX QiW1w9z99LTCJemKoJudjtCrPXgOV7dIu7ACZusjOSzsO2tUuPsq2CxiLskgqk5/Y8 D2U3cQQ9tFHOSTJ1sIBmUT4JqdKFyDimc88tVG3o= Authentication-Results: mail-nwsmtp-smtp-corp-main-80.iva.yp-c.yandex.net; dkim=pass header.i=@yandex-team.ru From: Vladimir Sementsov-Ogievskiy To: mst@redhat.com Cc: qemu-devel@nongnu.org, philmd@linaro.org, thuth@redhat.com, eblake@redhat.com, michael.roth@amd.com, armbru@redhat.com, farosas@suse.de, peterx@redhat.com, berrange@redhat.com, jasowang@redhat.com, steven.sistare@oracle.com, leiyang@redhat.com, davydov-max@yandex-team.ru, yc-core@yandex-team.ru, Vladimir Sementsov-Ogievskiy Subject: [PATCH v5 14/19] migration: add MIG_EVENT_PRE_INCOMING Date: Fri, 19 Sep 2025 12:55:40 +0300 Message-ID: <20250919095545.1912042-15-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250919095545.1912042-1-vsementsov@yandex-team.ru> References: <20250919095545.1912042-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:c41:1300:1:45:d181:df01; envelope-from=vsementsov@yandex-team.ru; helo=forwardcorp1d.mail.yandex.net 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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: 1758276019794116600 Content-Type: text/plain; charset="utf-8" We are going to implement fds-passing migration feature. When it's enabled (by setting migration parameter), TAP device (and later other devices of-course) is passed through migration channel (which should be a unix socket to pass fds) to a new QEMU. So we need to know during TAP initialization, should we open TAP device, or wait for incoming fds. But we can't check for migration parameter at TAP creation time, as use may set migration parameter later (especially when TAP is added by command line parameter). To solve this, we have prepared TAP initialization code so that opening the device may be postponed to later point. And this later point is obviously the early beginning of qmp_migrate_incoming(): here we already know all migration parameters and capabilities, but we are not in downtime, so we can continue initialization of TAP device. This commit introduces MIG_EVENT_PRE_INCOMING, to be used by TAP code in following commit. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/migration/misc.h | 1 + migration/migration.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/migration/misc.h b/include/migration/misc.h index a261f99d89..5765fcc204 100644 --- a/include/migration/misc.h +++ b/include/migration/misc.h @@ -63,6 +63,7 @@ typedef enum MigrationEventType { MIG_EVENT_PRECOPY_SETUP, MIG_EVENT_PRECOPY_DONE, MIG_EVENT_PRECOPY_FAILED, + MIG_EVENT_PRE_INCOMING, MIG_EVENT_MAX } MigrationEventType; =20 diff --git a/migration/migration.c b/migration/migration.c index 10c216d25d..88daa13960 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1696,7 +1696,8 @@ int migration_call_notifiers(MigrationState *s, Migra= tionEventType type, e.type =3D type; ret =3D notifier_with_return_list_notify(&migration_state_notifiers[mo= de], &e, errp); - assert(!ret || type =3D=3D MIG_EVENT_PRECOPY_SETUP); + assert(!ret || type =3D=3D MIG_EVENT_PRECOPY_SETUP || + type =3D=3D MIG_EVENT_PRE_INCOMING); return ret; } =20 @@ -1936,6 +1937,11 @@ void qmp_migrate_incoming(const char *uri, bool has_= channels, return; } =20 + if (migration_call_notifiers(migrate_get_current(), MIG_EVENT_PRE_INCO= MING, + errp)) { + return; + } + if (!yank_register_instance(MIGRATION_YANK_INSTANCE, errp)) { return; } --=20 2.48.1