From nobody Sun Sep 28 16:35:28 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=1758621851; cv=none; d=zohomail.com; s=zohoarc; b=LgWAQKUpwLJMwRV9shef5shSdga7PMPUz5r4SAVfsVKIGZVY5RT6ITvOU9wSU17Ce7lGCe834Ny4BbaPFLaAnVMax3YUcq33PaPNSP8uFam0cdeleeZm+7IYIOv8xiUR+MlVZGMxuHAUy5biLMPS22+OT92QJBdgU3e2YFOdAuo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1758621851; 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=GzChdpIiKM7X9bgeu4CwKiMXmrBRh/3YN7kvx854C6k=; b=WtZj70X5nd/YiAxwbgjnc6Eai5kRsRWN1hn9QgELGV36CQhsCsZDQlbUTpQchGFLb7B3ZtQmcEb0XZeG2p8gwAQ0il2/f54nuBN97tsl6JNqdBIvXZ8q4JchX+AV83Ok+8mHGfNR7+K6w8t5GUHFbFnqI0Eoth5aj1n1XRkhtPM= 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 1758621851827895.5614416205273; Tue, 23 Sep 2025 03:04:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v0zqs-0003fA-ST; Tue, 23 Sep 2025 06:02:27 -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 1v0zqK-0002vh-1W for qemu-devel@nongnu.org; Tue, 23 Sep 2025 06:01:52 -0400 Received: from forwardcorp1d.mail.yandex.net ([178.154.239.200]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v0zpy-0000vQ-Sg for qemu-devel@nongnu.org; Tue, 23 Sep 2025 06:01:51 -0400 Received: from mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net (mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net [IPv6:2a02:6b8:c42:cf2d:0:640:140f:0]) by forwardcorp1d.mail.yandex.net (Yandex) with ESMTPS id 2708980B6E; Tue, 23 Sep 2025 13:01:21 +0300 (MSK) Received: from vsementsov-lin.. (unknown [2a02:6bf:8080:b38::1:12]) by mail-nwsmtp-smtp-corp-main-56.klg.yp-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id C1Ug0C0Fha60-BVlNaRNH; Tue, 23 Sep 2025 13:01:20 +0300 Precedence: bulk X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1758621680; bh=GzChdpIiKM7X9bgeu4CwKiMXmrBRh/3YN7kvx854C6k=; h=Message-ID:Date:In-Reply-To:Cc:Subject:References:To:From; b=OF3WdaO4FbwXyhl/0dqAiFImJ9RDWHHMfeiU6sWStq/BdVbCRbOoh9PR0HwrlwYhK s2iT+mL8XOFwOFuoPM5ka4Iwob6HNTIgH/hMgSLp0MqAtj9jlQhPr4oV1vrdif1LSS HfZBfOPRpVf1wzm4Glopyo7o3U/c9goaoZEzozbA= Authentication-Results: mail-nwsmtp-smtp-corp-main-56.klg.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, vsementsov@yandex-team.ru Subject: [PATCH v6 14/19] migration: add MIG_EVENT_PRE_INCOMING Date: Tue, 23 Sep 2025 13:01:05 +0300 Message-ID: <20250923100110.70862-15-vsementsov@yandex-team.ru> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250923100110.70862-1-vsementsov@yandex-team.ru> References: <20250923100110.70862-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=178.154.239.200; 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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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: 1758621853757116600 Content-Type: text/plain; charset="utf-8" We are going to implement backend-transfer migration feature for virtio-net/tap. When it's enabled (by setting migration parameter), TAP device 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 e1ac4d73c2..4c356e0b92 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