From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a145651f96-e5d80e38-c1c8-4c40-8afd-bf0de67cc973-000000@eu-central-1.amazonses.com> Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11021089.outbound.protection.outlook.com [40.107.130.89]) by lore.virtuozzo.com (Postfix) with ESMTPS id 5D76B8017D for ; Fri, 16 Oct 2026 15:47:04 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=s9BmAWkBwe4rumOI9rzfJ0a7m1l+USFw/ipJg22UX3pnrXv9sYkxV70lCD+ftzPD+lp+rCoTSzlkDuFUJfeHFvWUd8xBqm01wCeIIssZETSLj5y9UbnxZe2VPe04qLYSI8wMAkeIPT7e+DrJ5DiBLtfHXMBYC2oAUSDMLEgjftw1YeZeXtM+swK90uNyTHQAmKzxNKFOOPTOhrrP886stuSa5xBQDFY7ddGgEI+I8Cb1xezRXWIa9TzMb+svXusGLAlcR4x3Nn+FnXVcarg8LQN1j/U0F64wd6/qIW5QAZvtlFBr/HFm8KdfCqGzpn7Kb+Bp1WoIRMjxmlm+p3SgCg== 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=vnLCwqF3wB3/sO0mupc6xybFqo/gQPHw55XqhoIoISw=; b=ZrXzHE/5aOZjQxTyjYK5ezbHGzw+WKcbsrbOSmGTEzY+xd+ApxTkUORTep0vuI+cQmG2/XgzLqAzmiH1fKS+gri0fJzlUCJRl9g3uFgDBhPg3Pf9UhsejW65qSAzcCm0mP/Cca+li1F4//YIryk6km43QxrL1x4xQeTAUW4wVxfhZ/khPFAilcSOf8FaLjOB4Uk5JurNRkULAcx3jgi3mzWkmjLuRdSTjuhIix6une94/6QOd0stSPmIU1N2oO9bI8W7d70oT8OaFYjY8LkUT25Nz8cETFegdeQPouHwa0mu03mcY8fNHcjMBy5Q+9xSBwk1aBSoOPZL8FVLMsy2rQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.2) smtp.rcpttodomain=virtuozzo.com smtp.mailfrom=eu-central-1.amazonses.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com; dkim=pass (signature was verified) header.d=amazonses.com; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.onmicrosoft.com; s=selector2-virtuozzo-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vnLCwqF3wB3/sO0mupc6xybFqo/gQPHw55XqhoIoISw=; b=ZDGzao2UDNaG0PBuTlOowLb+DrlYAqCc/0dSUnqKsI+356iRhMjapTQ09noR4cA2NSLBJycC1/iMmrDPZ+mb/1cIHGU2bRiJmJi5Rdqq7LX0YbFF50+S/7xP1jM2em/86ed0L25KWP4adf8ZQMaqWe5lKQ5E+r+icwaKk2kdWDM= Received: from AM8P251CA0010.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:21b::15) by AS2PR08MB8364.eurprd08.prod.outlook.com (2603:10a6:20b:547::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.9; Fri, 16 Oct 2026 15:46:58 +0000 Received: from DU6PEPF0000A7E0.eurprd02.prod.outlook.com (2603:10a6:20b:21b:cafe::6e) by AM8P251CA0010.outlook.office365.com (2603:10a6:20b:21b::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.522.4 via Frontend Transport; Fri, 16 Oct 2026 15:46:58 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.2) smtp.mailfrom=eu-central-1.amazonses.com; dkim=pass (signature was verified) header.d=sashiko.virtuozzo.com;dkim=pass (signature was verified) header.d=amazonses.com;dmarc=pass action=none header.from=sashiko.virtuozzo.com; Received-SPF: Pass (protection.outlook.com: domain of eu-central-1.amazonses.com designates 69.169.224.2 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.2; helo=b224-2.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-2.smtp-out.eu-central-1.amazonses.com (69.169.224.2) by DU6PEPF0000A7E0.mail.protection.outlook.com (10.167.8.39) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.522.6 via Frontend Transport; Fri, 16 Oct 2026 15:46:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1792165617; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=qypMAB1hTXD0p1YIPHjBNIehyXVIZg7cHDRmh3U5yTU=; b=CX6ifWi0F6DvvITSZQ5v3HWoD4tx1od4Mz+UlISl/CsTgm65NoltmSFRA32RxIqN NiGvmh33IopPMq2e3REi33Bez8t2ishqYU/Dc3WU3Ols8SGfZGpoA1LJ6pxj2YVPecT usZod7rUM2cV6fIJT0UVch3iWdM1g9rfGVX2bGCRG9vTKTLwya5OT/TM5hHvs2LgKv9 5QYu2VZCjU2XpbjbMU3IuQ8no+BVZj90jDQTN2GUXyWscpqfx3mYEcmZrBP0vB5aORR w9GgcD/8uFySiAtTEtfQ+Tp0/CUFh3dzkoYiqh8Qs/thFgpD1PSI2wt5mYqMXSG6WtD BqTL5F33hQ== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1792165617; h=Message-ID:From:Subject:To:Cc:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=qypMAB1hTXD0p1YIPHjBNIehyXVIZg7cHDRmh3U5yTU=; b=eUmbJ2lr3hGs2E8V7ERwYYVgJp/bO/6itLkdTb+L2P5kdczIjVOFW/m7XrVLWgmn Z9tjhU4/vlzF5wdddDoaxOVNmWO4CHV7BkV2O7U2e2mbFBB0y7p9re3lN/IjuvsHmvQ uWVzVGIX3Ouk1DCjrYOycfwjVDdd3Ek06QHYu1tI= Message-ID: <010701a145651f96-e5d80e38-c1c8-4c40-8afd-bf0de67cc973-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v3 20/28] migration/cpr: add cpr_is_in_progress() To: svt-core@virtuozzo.com, Andrey Drobyshev Cc: andrey.drobyshev@virtuozzo.com In-Reply-To: <20261016-vfio_v1-v3-20-47487cb5a8e5@virtuozzo.com> References: <20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com> <20261016-vfio_v1-v3-20-47487cb5a8e5@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 16 Oct 2026 15:46:57 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.10.16-69.169.224.2 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU6PEPF0000A7E0:EE_|AS2PR08MB8364:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 7f502520-90ab-4faf-3c6d-08df2b9cb62b X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr X-MS-Exchange-AtpMessageProperties: SA List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|704161411799003|376014|48200799018|61400799027|32142699015|9140799003|5063699009|56012099006|5023799004|4143699003|261009223027099003|10067099003|18092099006|18002099003|22082099003|4113699003|55112099003|5113699003|16102099003|13003099007|3023799007; X-Microsoft-Antispam-Message-Info: L3VRbmeF63J+BwY1qjWW9oJgbTmeLkxEbO1QeqPm89aGeWqDTLFIadI1hP41MjA0U1yb8vv3d82t4+GQ59/MihGPyoJ8CyvkK6rAyqWK1+4ACbwccAwd8kSEtgQkkNRtkCsqwluYjFepP02rP2xVtap0AbeMjtvCmSqJdia7wmyyDSNaLs77DpeU/156SMdWc6nUpMYsjcAz6f5GXEPJ2i034sgx7ojj58P7wVjN3hwb3RWL3HvkDez9rofCduFGWxfRHMP+Cu5rwI1e1RzHSOPzGrw0c1LfvxCjdfs//Mp7PdnnBSoO78IB7RDTt25wfrquZYqmqF4PzqD7GLrr0+0BhqfMYxdaXJu4A6IuWmsLn4FtRzmAiEI79hIAmkNw9jz8gb8cUnNb6gwOFv4jkedXmBwVjqoTbLPp9SYitkA7eqZiFLNVedEawx2lsEYZ4gEU4SgOIl6kKtuRHf4uIStvIbLIaFtLLLpQJQls7JhPw3z1BPGHgxnN2CNdY1vZ731KVsNP6cbuEzL2QgDubK7rkmD/qf9SMs9oQgYN2AanTZHHtkKRx2yCtqK9lmAtnkIpmOgf6Z2nwEtgR6sMy5xdLFlCkZeY/bbNnZP3GxwUCveMomo8PzjHJySGJJZR8v0vlTuSIZGNcTJgf0DLG6vPaZm+VJ5irAH+YrxPrPwKjjuBHMLnY5N8nJKRsG6ZqGnhY2s+Ty/qqSEWRep3zE5J7WaFg+oLCc+UktByMzF73flo1HdT5GW3JrFOcwKtDOKMvt9T8r//is8j+EzyRoPjDwzcYQx+BINgmCVPgXs+uM0D81jaXLvU/PhtC1kj08mKWfvzA75h7oTczXzzrUgMpCS80Y0m0mISSW8dXP+pt6TtVSGVQU2sVIfx3FZAs+RZY5an3DHchBYdYEmTB5ftzKycyqPLutEznjlb8RSg4Z9N2yhS7GzH9nW8B8fH X-Forefront-Antispam-Report: CIP:69.169.224.2;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-2.smtp-out.eu-central-1.amazonses.com;PTR:b224-2.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(704161411799003)(376014)(48200799018)(61400799027)(32142699015)(9140799003)(5063699009)(56012099006)(5023799004)(4143699003)(261009223027099003)(10067099003)(18092099006)(18002099003)(22082099003)(4113699003)(55112099003)(5113699003)(16102099003)(13003099007)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +QA3fULQecieWPARszjoAQ5tOjzL4aCT9qv7R2R+wtaWoF+x8RcniweveFPF00/UJv1WWmTy+4wIXWFOHjtPMMu6P1L84v1ZejiXzIX61xsckWOnupwCcsCzq5jLocrTb9xlGmgv1Rt/4OXOi+ETTO3K+vUIjupaVPR4756vtf9lQ+CBbCfWa8PEOcTQ9xvOv6iAZiEEl2pv8vndkYVWtr5H++jSN41617qbdQ/nbT8oonY/7dhQbspddmRdIibB6DhEr5O4Xlux41EM0JvnGEpE4Q1BuURNBTK2z70yT5Lfab2NwoPy9kU6Ng4NU+J6miINLM24ndOdFfZ4K+t8TjIWfTDVoUi/bG2R7YMWJ2Fl+E7nXHsDBSLH4LPBFTks73SbH5ArNJCXYw8LQZ9XkfkotYlfHnugl6Lx9DbsvhuMeeZ3kpcidwZE0OBkLBHg X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2026 15:46:58.0192 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7f502520-90ab-4faf-3c6d-08df2b9cb62b X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: DU6PEPF0000A7E0.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8364 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Medium] migration/cpr: cpr_is_in_progress() misreports snapshots of a pa= used VM -- commit 3d6e15a074763ee7756f891bee028184ab64eb6c Author: Andrey Drobyshev migration/cpr: add cpr_is_in_progress() This adds cpr_is_in_progress(), which reports whether a CPR migration is actually in progress. It returns true on the target until the incoming migration is done, and on the source only while the outgoing migration runs. On the source it tries to exclude snapshots by checking for RUN_STATE_SAVE_VM. > diff --git a/migration/cpr.c b/migration/cpr.c > index a149e790c103..74acdfc4123e 100644 > --- a/migration/cpr.c > +++ b/migration/cpr.c [ ... ] > @@ -549,6 +549,28 @@ bool cpr_exec_is_incoming(void) > return incoming_mode =3D=3D MIG_MODE_CPR_EXEC; > } > > +bool cpr_is_in_progress(void) > +{ [ ... ] > + /* > + * Source: the parameter alone means nothing, it may just have been = set. > + * But a running outgoing migration uses it. A snapshot runs as a > + * migration too, and it is never a CPR one. > + */ > + return migration_is_running() && !runstate_check(RUN_STATE_SAVE_VM); > +} [Severity: Medium] Can this return true during an ordinary snapshot of a VM that is already paused? The snapshot exclusion relies on the runstate being RUN_STATE_SAVE_VM. But save_snapshot() calls vm_stop(RUN_STATE_SAVE_VM), which reaches do_vm_stop(), and that only changes the runstate when the VM was live: system/cpus.c:do_vm_stop() { ... if (runstate_is_live(oldstate)) { vm_was_suspended =3D (oldstate =3D=3D RUN_STATE_SUSPENDED); runstate_set(state); ... } If the VM is paused or in prelaunch, the runstate never becomes RUN_STATE_SAVE_VM, so !runstate_check(RUN_STATE_SAVE_VM) stays true. Meanwhile qemu_savevm_state() calls migrate_init(), which puts MigrationState into SETUP: migration/savevm.c:qemu_savevm_state() { ... ret =3D migrate_init(ms, errp); ... } migration_is_running() counts MIGRATION_STATUS_SETUP as running. cpr_is_incoming() is false on the source. So if migrate-set-parameters has set mode to cpr-transfer or cpr-exec and savevm is then run on a paused VM, cpr_is_in_progress() returns true. That contradicts the comment "A snapshot runs as a migration too, and it is never a CPR one" and the commit message. Would callers such as the VFIO save path then skip device state during such a snapshot? Would an explicit outgoing-CPR flag be a more robust discriminator? It could be set in cpr_state_save() and cleared on completion, failure or cancel. --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261016-vfio= _v1-v3-0-47487cb5a8e5@virtuozzo.com?part=3D20