From nobody Wed Aug 26 02:46:15 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1780992039; cv=pass; d=zohomail.com; s=zohoarc; b=gmMqJ6jBiWlWy49OowpczizZNpwRSJxDRIUyHhbB52MaL7ymgnSbc2ozW62ocIwu/ulLye5c/22Uc/9ibFXVNzgv/rSmFpDTNytbuoWXo1T7dWDVUMJH2hSchwU5e0ZYzfmm4Rp0yZNm8TeGqYo1kLL8h9ExpiNwN8P30t7q/qw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780992039; h=Content-Type: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=aqaE1SyekmHJc3gLjGyn6sEPd+um0NqBnn1hwMI6cps=; b=ItZP+Z9gdwn8RLw4JdQtJDUX7E+gO2Vi1oge/F/wIwbSTuEU5wWbc+UVwfgkrDtj/uMQmgtwg6eAkj9YTh1AEg47RJh45peWPeopEKoRbQA7sDppf9MbhLqTKXkGYyOuvQJ9ldLITwKeH861O78UL5VvwKDHEWV280LbNvCgAcw= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1780992039962467.02686810690966; Tue, 9 Jun 2026 01:00:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wWrNm-0002Bj-Ks; Tue, 09 Jun 2026 04:00:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wWrNl-0002AU-0i for qemu-devel@nongnu.org; Tue, 09 Jun 2026 04:00:21 -0400 Received: from mail-eastus2azlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c110::1] helo=BN1PR04CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wWrNj-0004Cg-16 for qemu-devel@nongnu.org; Tue, 09 Jun 2026 04:00:20 -0400 Received: from DS1PR03CA0009.namprd03.prod.outlook.com (2603:10b6:8:450::15) by MW4PR12MB6897.namprd12.prod.outlook.com (2603:10b6:303:20a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Tue, 9 Jun 2026 08:00:10 +0000 Received: from CY4PEPF0000EE3C.namprd03.prod.outlook.com (2603:10b6:8:450:cafe::26) by DS1PR03CA0009.outlook.office365.com (2603:10b6:8:450::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.113.10 via Frontend Transport; Tue, 9 Jun 2026 08:00:09 +0000 Received: from mail.nvidia.com (216.228.117.160) by CY4PEPF0000EE3C.mail.protection.outlook.com (10.167.242.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.113.7 via Frontend Transport; Tue, 9 Jun 2026 08:00:09 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 9 Jun 2026 00:59:52 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 9 Jun 2026 00:59:52 -0700 Received: from vdi.nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 9 Jun 2026 00:59:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uIfgUOAr2IJ9lMAazTzQ/oviFwCdeMkY4KnTkme6zFX4yMMzUE14s0CZ79CBjMVEnqjZ/6J1Z/2EtyC8IgkgHKyI0QJtfVe5+luNOMZFVtip9vmXLIaPWC2PgP2PEQeqk01xg0PpsbsqULZ0WjjzqagYt2RA2xC+RWjqrVpzVT7KprMJ6jOyNNtARbMvSQneMBjpiXdM75BwgEn7Vl8DGhIxFRGRdz7bLsAJas5zhg40CRTgQvow3gitZZwnqzLSNU45JJCkSMVWROTwYYUpczRE9T2kfszUPWpHDSO3NK5/M5ysp2Z6erDIh1+mcikVMqQ/mOQMjcANFpC9/Z8EoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aqaE1SyekmHJc3gLjGyn6sEPd+um0NqBnn1hwMI6cps=; b=MZ21yEJUFwrZrLiL5+wlKofWzbGYJdMr4qQXbkQwfwE3k05jW9GNCuUT50XmLQgRc7XdMM1EyQYxtbdMMSlen8mBTb6e+KdFZvSrkVDHOhJkbwHf7nFNumnJmwD+aXuhFmsS7cERE0nIR/j+o+DFkR3tIyLIYfY2Cv8jnEZiZp2xWW0TMgz24B17li1ob18QOWTtTqY1krBy9SKixa+w0xtQwkw4Yix+YX8+FKXrijSunfFutThFLYhszOUZYbjstqIgftTqtTGhimK24xbkDQgvIHLCgjCd32m8R3Q0SwSjIhrE1kD9x0lqEfB3MHDY7usSAwyXQkC9WZvk5UfSpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aqaE1SyekmHJc3gLjGyn6sEPd+um0NqBnn1hwMI6cps=; b=TFzQ2R4v7w2yzJ42QitgM7hVzMLoUJ3/CCWnuSFaDJKK/JoQHOX/6/BI8FZkc0LdBKtzhC/4JlqQdhS76aVUmFNYgfabro7HDjsVYX8rh4VkdWRPwdrqHxn5/5vTD0FeNSh70R+2rGXVbnT+j4GJ0/hIUCL7bNpo3GaMMYpNSsFzTpFnyqltLqtEOZ2Ck8AgKJKa2Eo/bqdPA8Pm6x5VBT/IiOBqFbbjxxDdMJp1zwmlYHOkoLCJlTdo8tTtuMcJiMCfsEvj0v1hmErAxVuXVaMRD9gYTZJWAE85xiVgl+okK0/I2k2VNxUjw+GFOLSxnujCdlsSqmwGhE/DPdwx5A== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C From: Avihai Horon To: CC: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Xu , Fabiano Rosas , Pierrick Bouvier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Zhao Liu , Halil Pasic , "Christian Borntraeger" , Jason Herne , Richard Henderson , Ilya Leoshkevich , David Hildenbrand , Eric Farman , Matthew Rosato , "Cornelia Huck" , Eric Blake , "Vladimir Sementsov-Ogievskiy" , John Snow , Markus Armbruster , Maor Gottlieb , Avihai Horon Subject: [PATCH v3 05/14] migration: Replace switchover_ack_needed SaveVMHandler Date: Tue, 9 Jun 2026 10:58:03 +0300 Message-ID: <20260609075812.32067-6-avihaih@nvidia.com> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20260609075812.32067-1-avihaih@nvidia.com> References: <20260609075812.32067-1-avihaih@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3C:EE_|MW4PR12MB6897:EE_ X-MS-Office365-Filtering-Correlation-Id: 35ad7029-8575-4f0b-fd15-08dec5fd2070 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700016|7416014|376014|82310400026|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: dYjee91JquxzYwZdBIaoFbE6GLXI+j0rGoF6lnl/GKsk754JNx0EFYM0U1Ls+/NjukNrD6GJOovbGCGaFmoSouDzoR0T1ljS0OZu+xr6ihnwL0WOqam/vXq4oahoL49xUXi8eXy9JvLymWs++G2YraWj1Z/OPmorSl69Wktxua8ml7hCFyfjRHn8pYGwbTHTMIlvGk73Cl/3NprRTvXLGF5qekylq/6JeF5KTqqJ/ayIzln+lkxq3QZPPocAveJSBVkDs9XyGSbvvmhq9e4oZH3fPP8iuSQpD6gdFFaLsf4xUhmMFc1TE5D5L/GOmDcMZc1x5IdFM9tIUXYcsYxg+zqNNNQgcnWVgprmKTUz6muPRW8zxq1fVvUOVA8wJ9yWoniJdKCvg9tdE04tIrfojWIMeD/324IJrGYrDyuFvF3EdL7I7FELRc526ckwXAc8nR905PhXAKUREHvoWPEGVxo8JDPjVrynHLYsAR46CLaHJPIlIoblSh5bbMYHNUkMiYwlHUH/yZL3RpD6BFtMOllWIAk1oXkTBH1uj1SunBiHSWM2+AGcwBAg4Vgz0bZslCgmj6EHF971FSLTRlIv1cIw+BxL2vA54WZ+lkZMnAmEoUZun4XdbFdt/MSVrwTH2WRqHVNohR+WWzSMZYJedxlPCcpPxzCgpEY5q91VUz+DMy3VoAxqAO8yRNEfxOXV6TbuXGDtMScyF6sujNL7mkNeTKfpboX9fH/lC7F7qP4= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(36860700016)(7416014)(376014)(82310400026)(22082099003)(18002099003)(11063799006)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /Fxaz3MSylN/eFvLyxtwIVs+jWmxYlgLRrbJPgwsEb69yYxmkCjNzCVaLyeob2bbC+Aa3XjqhyOaP2YurB4PqIbZ0/m1eJqYrqv5tuMJpowVgaSUVgLHLZ9ELVmtDllGzzyuWqUOzPEhfkGU0hd2qXWvXbfZLjKe+u9bE8FOOTSCPckfwa1ocMKsR3LKcqPXhjueLHzFNG0cMv+chf7UZQ6Ngu1mSdhK/pZMg3udFseXn5TFdbP2PoXUz8LIiKHkeUDSq0xv9QrmRIMDhO09t9l/cqxmz2al/nQGrhK00ZhJgpCctXVsjKG2U/P/imn/ovcwZ+J2OMq2I8sJtuxnHUUOHo9Ln+FhiB6T9eLfG6zVNiat2OW0pp8VuLfobcdXi+GuT8eWPcdanf9+jEs9ahbRmbrROBRK8AFHZbRe9khJ1Ap6AAjd9nhuxvujNmbL X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2026 08:00:09.3549 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 35ad7029-8575-4f0b-fd15-08dec5fd2070 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE3C.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB6897 Received-SPF: permerror client-ip=2a01:111:f403:c110::1; envelope-from=avihaih@nvidia.com; helo=BN1PR04CU002.outbound.protection.outlook.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.445, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1780992041793154100 Content-Type: text/plain; charset="utf-8" A new switchover-ack mechanism that will replace the existing one will be added in the following patches. The new mechanism will not use switchover_ack_needed SaveVMHandler, however, the old mechanism must still be kept for backward compatibility. To keep things clear and decrease API surface of old code, replace switchover_ack_needed SaveVMHandler with a regular function migration_request_switchover_ack(). No functional changes intended. Acked-by: Peter Xu Signed-off-by: Avihai Horon --- docs/devel/migration/vfio.rst | 3 --- include/migration/misc.h | 2 ++ include/migration/register.h | 13 ------------- hw/vfio/migration.c | 18 ++++++++++-------- migration/migration.c | 15 +++++++++++++++ migration/savevm.c | 21 --------------------- migration/trace-events | 2 +- 7 files changed, 28 insertions(+), 46 deletions(-) diff --git a/docs/devel/migration/vfio.rst b/docs/devel/migration/vfio.rst index 691061d182..854277b11c 100644 --- a/docs/devel/migration/vfio.rst +++ b/docs/devel/migration/vfio.rst @@ -59,9 +59,6 @@ VFIO implements the device hooks for the iterative approa= ch as follows: * A ``save_live_iterate`` function that reads the VFIO device's data from = the vendor driver during iterative pre-copy phase. =20 -* A ``switchover_ack_needed`` function that checks if the VFIO device uses - "switchover-ack" migration capability when this capability is enabled. - * A ``switchover_start`` function that in the multifd mode starts a thread= that reassembles the multifd received data and loads it in-order into the dev= ice. In the non-multifd mode this function is a NOP. diff --git a/include/migration/misc.h b/include/migration/misc.h index 3159a5e53c..a2219c981b 100644 --- a/include/migration/misc.h +++ b/include/migration/misc.h @@ -156,4 +156,6 @@ bool multifd_device_state_save_thread_should_exit(void); void multifd_abort_device_state_save_threads(void); bool multifd_join_device_state_save_threads(void); =20 +void migration_request_switchover_ack(const char *requester); + #endif diff --git a/include/migration/register.h b/include/migration/register.h index 6f632123f1..a61c4236d2 100644 --- a/include/migration/register.h +++ b/include/migration/register.h @@ -302,19 +302,6 @@ typedef struct SaveVMHandlers { */ int (*resume_prepare)(MigrationState *s, void *opaque); =20 - /** - * @switchover_ack_needed - * - * Checks if switchover ack should be used. Called only on - * destination. - * - * @opaque: data pointer passed to register_savevm_live() - * - * Returns true if switchover ack should be used and false - * otherwise - */ - bool (*switchover_ack_needed)(void *opaque); - /** * @switchover_start * diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c index 180b316bae..7055cfbd3e 100644 --- a/hw/vfio/migration.c +++ b/hw/vfio/migration.c @@ -487,6 +487,14 @@ static bool vfio_precopy_supported(VFIODevice *vbasede= v) return migration->mig_flags & VFIO_MIGRATION_PRE_COPY; } =20 +static void vfio_request_switchover_ack(VFIODevice *vbasedev) +{ + if (vfio_precopy_supported(vbasedev)) { + /* Precopy support implies switchover-ack is needed */ + migration_request_switchover_ack(vbasedev->name); + } +} + /* ---------------------------------------------------------------------- = */ =20 static int vfio_save_prepare(void *opaque, Error **errp) @@ -776,6 +784,8 @@ static int vfio_load_setup(QEMUFile *f, void *opaque, E= rror **errp) return ret; } =20 + vfio_request_switchover_ack(vbasedev); + return 0; } =20 @@ -874,13 +884,6 @@ static int vfio_load_state(QEMUFile *f, void *opaque, = int version_id) return ret; } =20 -static bool vfio_switchover_ack_needed(void *opaque) -{ - VFIODevice *vbasedev =3D opaque; - - return vfio_precopy_supported(vbasedev); -} - static int vfio_switchover_start(void *opaque) { VFIODevice *vbasedev =3D opaque; @@ -904,7 +907,6 @@ static const SaveVMHandlers savevm_vfio_handlers =3D { .load_setup =3D vfio_load_setup, .load_cleanup =3D vfio_load_cleanup, .load_state =3D vfio_load_state, - .switchover_ack_needed =3D vfio_switchover_ack_needed, /* * Multifd support */ diff --git a/migration/migration.c b/migration/migration.c index 929a6c432c..d6383b23b9 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2196,6 +2196,21 @@ void migration_rp_kick(MigrationState *s) qemu_sem_post(&s->rp_state.rp_sem); } =20 +/* This is called only on destination side */ +void migration_request_switchover_ack(const char *requester) +{ + MigrationIncomingState *mis =3D migration_incoming_get_current(); + + if (!migrate_switchover_ack()) { + return; + } + + mis->switchover_ack_pending_num++; + + trace_migration_request_switchover_ack(requester, + mis->switchover_ack_pending_num= ); +} + static struct rp_cmd_args { ssize_t len; /* -1 =3D variable */ const char *name; diff --git a/migration/savevm.c b/migration/savevm.c index 8ff6c0b17e..25afcfd71e 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2800,23 +2800,6 @@ static int qemu_loadvm_state_header(QEMUFile *f, Err= or **errp) return 0; } =20 -static void qemu_loadvm_state_switchover_ack_needed(MigrationIncomingState= *mis) -{ - SaveStateEntry *se; - - QTAILQ_FOREACH(se, &savevm_state.handlers, entry) { - if (!se->ops || !se->ops->switchover_ack_needed) { - continue; - } - - if (se->ops->switchover_ack_needed(se->opaque)) { - mis->switchover_ack_pending_num++; - } - } - - trace_loadvm_state_switchover_ack_needed(mis->switchover_ack_pending_n= um); -} - static int qemu_loadvm_state_setup(QEMUFile *f, Error **errp) { ERRP_GUARD(); @@ -3078,10 +3061,6 @@ int qemu_loadvm_state(QEMUFile *f, Error **errp) return -EINVAL; } =20 - if (migrate_switchover_ack()) { - qemu_loadvm_state_switchover_ack_needed(mis); - } - cpu_synchronize_all_pre_loadvm(); =20 ret =3D qemu_loadvm_state_main(f, mis, errp); diff --git a/migration/trace-events b/migration/trace-events index c0c433744c..5955befcc6 100644 --- a/migration/trace-events +++ b/migration/trace-events @@ -8,7 +8,6 @@ qemu_loadvm_state_post_main(int ret) "%d" qemu_loadvm_state_section_startfull(uint32_t section_id, const char *idstr= , uint32_t instance_id, uint32_t version_id) "%u(%s) %u %u" qemu_savevm_send_packaged(void) "" qemu_savevm_query_pending(bool exact, bool final, uint64_t precopy, uint64= _t stopcopy, uint64_t postcopy, uint64_t total) "exact=3D%d, final=3D%d, pr= ecopy=3D%"PRIu64", stopcopy=3D%"PRIu64", postcopy=3D%"PRIu64", total=3D%"PR= Iu64 -loadvm_state_switchover_ack_needed(unsigned int switchover_ack_pending_num= ) "Switchover ack pending num=3D%u" loadvm_state_setup(void) "" loadvm_state_cleanup(void) "" loadvm_handle_cmd_packaged(unsigned int length) "%u" @@ -199,6 +198,7 @@ process_incoming_migration_co_postcopy_end_main(void) "" postcopy_preempt_enabled(bool value) "%d" migration_precopy_complete(void) "" migration_call_notifiers(int type) "type=3D%d" +migration_request_switchover_ack(const char *requester, unsigned int switc= hover_ack_pending_num) "Requester %s, switchover_ack_pending_num %u" =20 # migration-stats migration_transferred_bytes(uint64_t qemu_file, uint64_t multifd, uint64_t= rdma) "qemu_file %" PRIu64 " multifd %" PRIu64 " RDMA %" PRIu64 --=20 2.40.1