From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <010701a19bdc6337-410183f6-b5b8-4cf4-a69f-e6378097e572-000000@eu-central-1.amazonses.com> Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11023086.outbound.protection.outlook.com [40.107.159.86]) by lore.virtuozzo.com (Postfix) with ESMTPS id DB2C48017D for ; Mon, 2 Nov 2026 10:44:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mDPh8zzUeyXWE0QJaLElYuY8NUeiRe61lrk65IB9QNRUV3agDTBbRIfgspvf+robKmDIO2TXHHbXAhjsLa4WawsYcC+PSZ2+ozjZ0MJyvr3bA93wYuLICIdE0ZdggCMqY8QfZOZCB4yO/NP9jf+aWxWKl7P4eo5PpSWAhIUxbjpI+yUz0S5o4KZCcfZx9xv5u5VwhKu3RLD8tKnDYlbf7UCOeZcAWzWgHrsy5roQrg3jQlV1/U+1yEwW34tiJWmZkNyejQBPa2ml81fzCw0j/vktgBnmxPxkJepZp9+V8V83BMYCwmUdE6/kuatA8ufEb6RX/7BNdZbCDWrBXVk2iw== 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=UiOcaSMXQn0A4IHYvkMvQTu+PK23xMioRYYhQ2L+mz8=; b=m9Z4VN2l1BmL5chCbkEeddTNLRE0+OAnNC8bekqBIBGbFmVrSfGIqp1hHK0hPV0SZK3i4s/C42aEUJeBubdtgtnZt3GLi80WQeAZrF5TzHanGPjYdYEe8HFSdjdX8xyorkjW+BicICCdVBNj6hPLqWC8/OvMQbGBx8kyx7Hq/WiNcsyRM4xKutYyuvQTDSqZ1QIUICIW/A2xwp4cioiyiodvDGAXByRGjHFYbysbjXt2ACPE5C+YXlvInXcFSLu6Z4GJghcupIkiX04glen+1n3JCqv9+MVD/RXOUrW0zwOvqwC8A6mBxKO+/9Wvp54RF1UQhHCYjCUlW7oNcnvILA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 69.169.224.1) 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=UiOcaSMXQn0A4IHYvkMvQTu+PK23xMioRYYhQ2L+mz8=; b=MVz7uInTX8VbGaszUoMISrE3qYBK28KUhXwdbkMZZbQcOhYKIPT/vY5zO+miVJu3/EWnHmefpaaDQ5HuCNwU170loN0ouveU7odEV5THq4Ln+IB+t5PFr8L+Xop3Xel2RdEHMNgLY9Z+UKNLTiqda4MXDiyG53mQyFJr0zh0ZZw= Received: from PAZP264CA0139.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1f8::22) by VE1PR08MB5645.eurprd08.prod.outlook.com (2603:10a6:800:1a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 10:44:36 +0000 Received: from MI3PEPF00008487.eurprd02.prod.outlook.com (2603:10a6:102:1f8:cafe::47) by PAZP264CA0139.outlook.office365.com (2603:10a6:102:1f8::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.569.12 via Frontend Transport; Mon, 2 Nov 2026 10:44:35 +0000 Authentication-Results: mx.microsoft.com 1; spf=pass (sender IP is 69.169.224.1) 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.1 as permitted sender) receiver=protection.outlook.com; client-ip=69.169.224.1; helo=b224-1.smtp-out.eu-central-1.amazonses.com; pr=C Received: from b224-1.smtp-out.eu-central-1.amazonses.com (69.169.224.1) by MI3PEPF00008487.mail.protection.outlook.com (10.167.240.134) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.592.5 via Frontend Transport; Mon, 2 Nov 2026 10:44:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=23yjbh4k34hwzfubhuiim7m4inbd3ick; d=sashiko.virtuozzo.com; t=1793616274; h=Message-ID:From:Subject:To:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=93uCHITXvHtTZfDhemJwJ3R3MJADXJwlQgJBOKW+vuI=; b=qIM6pTwDKcby9MOvN9G29EL18Na9kBvRvFGpesgqB7dEHKGeIBRfda+xHTdPvH7Y Y9D7Z4/Hi8XPc3MWnmCT8RSA8K7EevCVli5UyOr0utmu+ulUGIKQjv4usPbTWF8MbC/ hIAdzTlxzZbh9Rzqyfp9HHQujRRhQHPC0Enh9swc1F9gGQfzTdrlyl1j5JOt9tofbLL UAXVUBOzbgTgwBapHZ2HzUalhEU7+Pn/ycBqY1wEYqOmVM9IxTYJwY3mC/v3KuWw+/r i7B3a2hoMqT9Mn5z7uya6n9IO39pmEiJmT81elnz4gADnwK15ljuo3CroTe5EAc0+0k X0RXq8KZrw== DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=qftdzk2dqsatjnlrq4r5brjbihpfcrsh; d=amazonses.com; t=1793616274; h=Message-ID:From:Subject:To:In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date:Feedback-ID; bh=93uCHITXvHtTZfDhemJwJ3R3MJADXJwlQgJBOKW+vuI=; b=mwFs2D12R3QDVJIAtLUzQSUEpsHBQwCTsg6QqCDFXf31e4vkYbBIGhbZpNgnPWp3 ad2EorSVGa0dk39lOfa/T8VSU8c1vGtEr5bq3HEYqJ+fzNzqTbG0fDch6a3cVM9b0VH /1v4V3hdyNcND+qQepIUyd2olyJhhhkhA/aoqrJk= Message-ID: <010701a19bdc6337-410183f6-b5b8-4cf4-a69f-e6378097e572-000000@eu-central-1.amazonses.com> From: no-reply@sashiko.virtuozzo.com Subject: Re: [PATCH QEMU HCI-8.1 v6 07/34] migration: don't refuse a blocker over a migration of another mode To: svt-core@virtuozzo.com, Andrey Drobyshev In-Reply-To: <20261102-vfio_v1-v6-7-9bc7cabc850d@virtuozzo.com> References: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> <20261102-vfio_v1-v6-7-9bc7cabc850d@virtuozzo.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 2 Nov 2026 10:44:34 +0000 Feedback-ID: ::1.eu-central-1.2wRQJBpg9g1fGRYexx3dUuYGS25Bux+2TEOx72/m6U4=:AmazonSES X-SES-Outgoing: 2026.11.02-69.169.224.1 X-EOPAttributedMessage: 0 X-EOPTenantAttributedMessage: 0bc7f26d-0264-416e-a6fc-8352af79c58f:0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MI3PEPF00008487:EE_|VE1PR08MB5645:EE_ MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 41c50156-0599-4db1-a170-08df38ce48e8 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|32142699015|61400799027|48200799018|9140799003|376014|4143699003|56012099006|5063699009|261009223027099003|261028144727099003|261021121427099003|261026121527099003|261026140227099003|261022105027099003|10067099003|55112099003|18002099003|18092099006|22082099003|16102099003|4113699003|5113699003|6133799003|13003099007|3023799007; X-Microsoft-Antispam-Message-Info: R464OYK5CX/GUwdUbNO9rvaUu5sEFMZ1CnydwYEZlgSSV3HyzdazEqmwBl7ieV+f7Ys5XIopD7n8NeRAcTxjqfSX0Q8pis6AlhyvcSZjpu+dfkil0uKXZOKiyn6uyTtDDgK8QWvITYDtluRSDC55Ace7Z4RkJpWyqreIOLWKmcvSF/a9ld1EsTbBhRZ9ZWNfdh8+zTDNfdHbStMDKp9YKu4BRWwmwQ/DFPCDweut7lmNZpWlPxWW5/UCjCGOQu0udYKiPZhmSSZiPyEUnZdzRWyLh58UcIP/dm3po2nVXm8u9aQnCBQfGS2vp41CP/CoBLTUpB5TdAyGqRO2fem0faylKXLlOj2mPibczHXQ8yOiAYP1P/oqZzR1dzw4fcOKZH4RcKliLpaYKXM5A+yKnLsuBR/37p7/C9+Jve41xS/x6OJMuuTvHNBUTiVyMnTIxHlJw266T7zNd0QdsSdKG6EXmtmivHMRNWKjPw+vGd3EMp+fuDyI6oni7wQiljtcp91rodiPq/YS1RB9BUMDJjG3YJXtnzX06zIrqNon2wDuWYEk/kYVu2pyi8N6vsGp5HK5s1l9jdrBvKg7VjAEuWMhjo+S4e1S71F22D4PepkmeTsJq2WDgfgis2KquYhsL4w/cKjoNlY3QT3TKxtveTbDRe8m0UyeJZ+8WzMcki3FNxExKMDT4PQVI4bImCnSg4FZqTLG7zfCBQbM82E6Z+MQZbHYsQjy/zssqsSIUTsZyqTN90qRquKnO83oDn94xNQOaNtV2D9nR3WQ5icHExIiP7sxEeNxyqmwsG4hFiEyWFNEYfPJhqFp1u+Znlh3Y9FPIWun+oQjqajr7tUMdgkAM2QzWB/0tm1haAUy7+ofbCBNc2aPAtI84RilrmOV X-Forefront-Antispam-Report: CIP:69.169.224.1;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:b224-1.smtp-out.eu-central-1.amazonses.com;PTR:b224-1.smtp-out.eu-central-1.amazonses.com;CAT:NONE;SFS:(13230040)(704161411799003)(32142699015)(61400799027)(48200799018)(9140799003)(376014)(4143699003)(56012099006)(5063699009)(261009223027099003)(261028144727099003)(261021121427099003)(261026121527099003)(261026140227099003)(261022105027099003)(10067099003)(55112099003)(18002099003)(18092099006)(22082099003)(16102099003)(4113699003)(5113699003)(6133799003)(13003099007)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IQXZA6fMrsk/ClA7N7K9s23v7LPsM4JaM2Csc39MUU9CJC7LmOHrkRUYArkIe+GYS5TEXDqNpbxcgYp728PPZchwKKshYo7pccaDuita661c8D1EqAosWieBunzYmOZDGZ1RVXoB9+UhCeDH9YitH1AUDTR7CYYLaj4Jl1cE7efppI0xjknGnq8FT3DuIw6zWHBeATUcnjsOQ6OqeN6yGYKXov/fwWMShbivBlHg4Ctoz6Qk5x+kofUzg51FmBS0W7agB6YdMPkn+cQeewxIeIt7/kd9dKNZZzZFxIDTNExx4bu7pp8tEGd6JsPLJoY6JIx3SxHkNbK7vZ1eAZZPVgVRpeAcIaMzxJW+ilQeTJJuSRHaxXE/PxbC7PAmGPm7INkdTYMimSBfJ1WiqxoFTauPzHFBEGjOJUuhp31DX+FRaRL3VE/v9WZ1PVHaLTgU X-ExternalRecipientOutboundConnectors: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:44:34.6800 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 41c50156-0599-4db1-a170-08df38ce48e8 X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-AuthSource: MI3PEPF00008487.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5645 Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Low] migration: is_busy() infers running migration mode from mutable mig= rate_mode() -- commit 2015f10f6c752af08a156252c60a8be9554976cc Author: Andrey Drobyshev migration: don't refuse a blocker over a migration of another mode This patch changes is_busy() in migration/migration.c so that a running migration only causes a migration blocker to be refused if the blocker applies to the running migration's mode. Snapshots (RUN_STATE_SAVE_VM) are still checked as before. > diff --git a/migration/migration.c b/migration/migration.c > --- a/migration/migration.c > +++ b/migration/migration.c [ ... ] > -static bool is_busy(Error **reasonp, Error **errp) > +static bool is_busy(Error **reasonp, Error **errp, int modes) > { > ERRP_GUARD(); > =20 > - /* Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM t= oo. */ > - if (runstate_check(RUN_STATE_SAVE_VM) || migration_is_running()) { > + /* > + * Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM t= oo. > + * A running migration only matters if the blocker applies to its mo= de. > + */ > + if (runstate_check(RUN_STATE_SAVE_VM) || > + (migration_is_running() && (modes & BIT(migrate_mode())))) { [Severity: Low] Can this test be wrong while a migration is in flight? is_busy() infers the mode of the running migration from migrate_mode(), which is not a value recorded when the migration started: migration/options.c:migrate_mode() { MigMode mode =3D cpr_get_incoming_mode(); if (mode =3D=3D MIG_MODE_NONE) { mode =3D migrate_get_current()->parameters.mode; } ... } The parameters.mode value can be changed at any time through qmp_migrate_set_parameters()->migrate_params_apply(): if (params->has_mode) { s->parameters.mode =3D params->mode; } Unlike qmp_migrate_set_capabilities(), which rejects changes with "There's a migration process in progress" when migration_is_running() is true, I could not find a similar guard on the parameters path. Suppose a normal migration is running and mode is then set to cpr-transfer. A blocker for MIG_MODE_NORMAL only would compute BIT(MIG_MODE_NORMAL) & BIT(MIG_MODE_CPR_TRANSFER) =3D=3D 0 and be accepted while the normal migration is still running. The reverse case would wrongly refuse a blocker for the newly set mode. Also, migrate_mode() returns cpr_get_incoming_mode() when it is set. That describes the incoming migration, whereas migration_is_running() checks the outgoing current_migration state. Can the two describe different migrations here? Would it be better to record the mode in MigrationState in migrate_init() (or migrate_prepare()) and test that value in is_busy(), or to reject mode changes while migration_is_running()? > error_propagate_prepend(errp, *reasonp, > "disallowing migration blocker " > "(migration/snapshot in progress) for: "= ); [ ... ] --=20 Sashiko AI review =C2=B7 https://sashiko.vzint.dev/#/patchset/20261102-vfio= _v1-v6-0-9bc7cabc850d@virtuozzo.com?part=3D7