From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11023089.outbound.protection.outlook.com [52.101.72.89]) by lore.virtuozzo.com (Postfix) with ESMTPS id E8DF881229 for ; Tue, 3 Nov 2026 13:57:39 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lpFcJxkCF/vd2avbxi6t7DD2MxcW/nm7eGWV1B1KpH3vPhNcJtwkGItGQVNTHLSUs66Jp3ieL0zl6ksD3rwcoNOo497YU0QmvN74Q1UMyG8YFI5TrczrY+1yDCKj6HcqR2Z2aQhVQwBwRVM9WlEq0RU+JVthv53KJ4pP34xcXRc1Tg32UqNGkI7pMO/5/YTs4pObnrV4F5wW9wkOC4LHxY7HbgIeZZw9NhuKiBQG3chTQCHNlhkIigUbVAregY7KVDIvsEz2X4vSubSmpS5JItsJWZBatGCQWqAnXgNpUTXVigmm+WHj8KAZOA55klKZafaHTQDht6stuDlOHr2wWA== 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=s0gajz4xwJQHAyQ8hZt+K8yYG0rMS4jW3Q5HTup+ojk=; b=hPKiTZNlVmUJu2Mo3evbvxbF3WtmRYF91TXXB3jLne4Q5ke+CxW3yJ+HAaoPbAeVEi8OUPG/7EIGs1s6pZe79OrxdrGSyITytscYjN0wOYlVAsMvEdwF55RG4RqFJ6nBA6cf/mwbCLFwH7Len1jejQKvdoaXf4+7DvOmp0WQqyQBkOnvNeOteUF8gDPMZf22+/6AyayNBBGHwvorqtmpkylIz5r/T90na7UVoj/KlCVWdLjIAk/BMV8+zU5UGoZ+nAEAbgIay4nwleR+N0pZhidSiA3bKHRgGD8p37lDQ8vBirKvcyEHMjhKOKVsVx5SfmbNjTqCataGgGa05Pix+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s0gajz4xwJQHAyQ8hZt+K8yYG0rMS4jW3Q5HTup+ojk=; b=bcOAFVj5GCVInGO95fKM8pEafa7m9vA0pyrLHE2M7buvHC+ZhqwVrfABUIZtH/DHcs1inKJMCq77uBhsCWD2wajDwpcvVBr9dNs7pzn7vaBrKRjZfQriDjK0VZ4ms54m8NuCMKJ3j3tsS7kuoi4MiB/8zDoxk3E72KVlGiolazJgjZPfAD+tLVXNTglIJaDB3kxrN8KrhZ7LT009aQ8NTqPdhYzYtTqjB7sm2/O5TdDlhm9q7s0AaJD0fSSkd8qMBnyAQNonEOSaSY4SP86NRhfO5k9YmDCB8vkUiZIrWdoUAWEnLfvzVHChtgVnR+NNlVAKYbaS8H+Q6RXuc41syw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by AS8PR08MB8491.eurprd08.prod.outlook.com (2603:10a6:20b:566::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Tue, 3 Nov 2026 13:57:37 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0569.011; Tue, 3 Nov 2026 13:57:36 +0000 From: Andrey Drobyshev Date: Tue, 03 Nov 2026 15:57:23 +0200 Subject: [PATCH QEMU HCI-8.1 v7 08/35] migration: don't refuse a blocker over a migration of another mode Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261103-vfio_v1-v7-8-4467fdccbbe6@virtuozzo.com> References: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> In-Reply-To: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI4PEPF00000153.AUTP296.PROD.OUTLOOK.COM (2603:10a6:808:1::86f) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|AS8PR08MB8491:EE_ X-MS-Office365-Filtering-Correlation-Id: eeeae88e-1795-40d5-430b-08df39b26559 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr 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|23010399003|52116014|376014|1800799024|366016|38350700014|261026140227099003|56012099006|261009223027099003|261028144727099003|261022105027099003|261021121427099003|261026121527099003|261021123027099003|10067099003|18002099003|22082099003|261102123227099003|5113699003; X-Microsoft-Antispam-Message-Info: QV+ZxIjI/E3dod3IfNvK3BNqg3DHpOTSOfcBfXL7QCM2W4Lvu7R5LtVrXYBvI6RO7ukI0aOH+8nMABO8CjLr2FmziEdzUHcmiVW/TYWaZWethFnaVKPMM1/BySwA3trbSUzUkiXLobBHD4+yQ/Ezg6WHw2QqHGACvvMLWdaPXyV3elZsJFEjtgH2DLFiQsWH6/Kx8P8dv25dfK3rVArFca7F/o9mlelVtvoQweHkiBJpqnvm6PSwon3NOAbpGy/17q4HBQ9fij4D0m+Bf7uP6oVsVeR5DqeR4nLpqH8l0bF2Br15FdEDGRDI/sHomiAOzK4Kx33Vz/ArOnxq31vTUTV8LluuFynPBMYgaDEVriw1WF4uyEqcaLdPloCE5DV0Wu/Bkot6Psue7H4+mFpmlnV6RJy/9pou7gKYYHnS/5CceBiEyNHsm07roh0gavIg7PMaMZ3r+Rs6x5caCRv4V+YXYvAKVuYzdQi/Gqua4GH2YyTxnGQcrBRB4H2LptPbw+z+1iQouZT8D8INdRzFvsPXpqIMMnrV67h1iWGTYZlFPB1buQtNxFCBzUniHgrN7H9GIFrOa2CJFJt+pcYyJHiJzQRrMTnMDeIt/mXlQzPC+JG2C6BOxBDBNclVIO6mUEjFj7ms3p04GEjegAe/qehqZ98EQ0IBuErK88iSSuz/dxXcoe2EPekQAnGX+BFP9VG2L1XML1v26AOUT3/LK7i1Rmhcco8OX+LZ1Dr5K/I= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(52116014)(376014)(1800799024)(366016)(38350700014)(261026140227099003)(56012099006)(261009223027099003)(261028144727099003)(261022105027099003)(261021121427099003)(261026121527099003)(261021123027099003)(10067099003)(18002099003)(22082099003)(261102123227099003)(5113699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?LytZMDJUOXhidUZzQ3l0RHV6RWFNbVFYNHBKaGlkcVZrMVlIajNVbW0rMVUx?= =?utf-8?B?NThyTy9oZkt2bWxaL013TTdkY2lONmUrWWE2OFdrZFRwcERtdkt3VVBQWFZK?= =?utf-8?B?YzVnbzdaYVM2blJYeGRsR2IxdkhjdjlFNk1JamdVNExtdko2VjFWU2lKQUcy?= =?utf-8?B?ZEoxK2tQam9iWlpmRnM2VVN1eDY2UjhuOC8xN3g1REwwTVVsMVlGTmJQQ0hN?= =?utf-8?B?QUNwZDY3dWFocEF4VHdHR1RXcDcrSjc5MVkwaDgzd1lleUxEQXBuaUZqZjMy?= =?utf-8?B?YVNLazNPRENzSFJNQnBqeUZyclZRU0RESk1oajRoZTJrU1hUVVpEYXhvRUVo?= =?utf-8?B?bXB0YklFeStpcjJGTTVOYzR6OWlhdEhRZUcvRWNKQWJxemZrZEZsR0tpa3Ny?= =?utf-8?B?aGtFK3RGdkxCL1VBRnpyNC83eDlXajNqb2VKT2hFeEI4R2tYaTJTM1lFdHNK?= =?utf-8?B?YTNoSUtUUkFGZ2JVSE9kemFNQkFUMjF0Vlp0T0VlVjUvMklzcG1uK3lNODVt?= =?utf-8?B?NDdSaXIrdnk5OEc5dGdCOEhvS21Hd0FNcENlZnI2dlVFdWhoUHJWdWpxM1pB?= =?utf-8?B?VERGeDhiYXJuTllQa3VnM2Iya292ZytjZGRKOE1ITEtmeC9HT013eEZUUkxI?= =?utf-8?B?VEkvK2JCNmRJRFRSZFJrM2tOZlc3Q2xPaGZmbWx0T1hSdWp6eU52TmoybUhT?= =?utf-8?B?cWhJQndQeVdtQjIrTTFsaE9XUGpZUTVPa0VFMFR0Skc2V0hSSjhvNHhPckI4?= =?utf-8?B?Ujl1UWJiQzNnUG1TSUl4OFVXdVlGQS9RSU5wVHpzalVsbmJpUGVSVnpiSnNZ?= =?utf-8?B?UzNQM25sb2NQNyt0MVVscTUvd2hGb0QvWFo2U1JkQ0dnWEFsUlFyZERGcWt6?= =?utf-8?B?NTBHVDVWYitCMXI5SHZrOVFtUHFoZDl0REpYeFpVNk1FTFB5Z2EzY1hQSEVW?= =?utf-8?B?M21sM2k5dG5YUFRzN0d6eWtrZno2eWRuOGxvdW4rVlBWMitneUNSMWU0V1R6?= =?utf-8?B?ci9hNGM1Ykg4Yk9BUHhMdUFnQnRRUFBRajBuWjlaV3FTZ0JOZGtJMUMwdjY5?= =?utf-8?B?OHlHNGluN1plOXdpN0xDTDYvMDRTZGZSeVlWTFZLVUI4NitHZG82N3Q3RUh4?= =?utf-8?B?aHhjU1RsSExvUnY4REM2TVZQc2FxZ0h3aWZwaDJQenNRU2tjNndhR1dxSXdj?= =?utf-8?B?SUZ1ZGIxcG1zSXRadWVUd0YwVUErUnlwT3hrVlRsWW9pWmorWmJwdlZieVJF?= =?utf-8?B?aFNJNlRoODBXV2JDV0ljZldUckZ0QVl2ZVhOamduOU1DbE40ZnByRGEzRXlK?= =?utf-8?B?RXVXRmJpa2hDTmFPbUtlclJ5Vm1zTzJmM1BaMmtlTmZndU4xb3BFcnAxQUdW?= =?utf-8?B?QjdJOWEvME5KS3hBU2RFaE54NnA3UURsUFdWMkJmNGxrQjAwUGh0M1YwN2RQ?= =?utf-8?B?M1pFTFZ5Y2l5MkowVkxhR3lSYlFCa1owbFR5ZUo4S0oybm0xdlRUY0Zqb2Jm?= =?utf-8?B?dGhnMnR2eHRjamlpR1Z3Vk43MDF1TlY3bXFDTnNQNktaSE9uZmxxOGJtcW9r?= =?utf-8?B?U1JTZU52eDJHSDJZTnlHQm9vYTRXdjRsRDBHL2xDL3FOd296VUNwZkR3b041?= =?utf-8?B?WS85SHdra3Q5TWtJMUlYQlQ3dDBPRytBZVhEdWVYK0pCUWE5WUNybXZHbElK?= =?utf-8?B?UnlDZ005QW04S3I0eXZySGYvNVhFSG9CZTBZdXBOM0hvZkFTRG5NUDByZEFF?= =?utf-8?B?OFpsOGR5SGtYc2RnWnJDbEVRYnMyYjhJT3h0SXFwU0VIY2NDRVNNY3hOUGI0?= =?utf-8?B?NG8zOFZqSFdWYWJyL1A4Smd3d1BKVWsxQU9maVNjYVIzL2JsUWwwZG1Zdm01?= =?utf-8?B?NExDdXVBZnpkT2hscDJkZ1psZlNXaGN0Q0U2WTBoOFdRajl2aUs0ZW95YSsw?= =?utf-8?B?ZlU5ZkhHdlFiQW9FNzJOdUp4VncralRNcFV4cUFZZTVoc1lsVTgza1h3WkpM?= =?utf-8?B?TG1lbmlwSWcxN3FvbzJxZ1BWSmh6Tzk5R3lkeHZyVitUUnRVWVVUeGNhUmF1?= =?utf-8?B?VzRpdGdyUVNETk5VVjRKeDdhL2YxcXFLYlZsZm43VW40c1JPczlsTlVqcVpN?= =?utf-8?B?YmJRUUZZRS8vL3pMOWxhMmo1b28vUXU3Mm02bXUxeTMxaGFsUWduQU95bFov?= =?utf-8?B?RVhkNUhQd2o4ZUQxWlpCemxxTTdkQmdwR0kyUDU5K0c3RnY2VFBmRlJrR1My?= =?utf-8?B?cUZueC90b2dIR3hpdFM2eWZsMXFjZGpNRTFkd3l3bWVveWI2VjdVWCtqVjQ0?= =?utf-8?B?MEhtOStCcVpxdTNQWlJOLzR2Z3FOMDhBeCtOamJqZDZpNnp2a2JidnZrejcz?= =?utf-8?Q?OqgrGMtRtLnonM8k=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: eeeae88e-1795-40d5-430b-08df39b26559 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2026 13:57:27.8235 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uFa0nAGK18vS39LF4hrvMDxVldNRR7fCYDUdrJJoo1HTCkIB4fXkf+eADY9LAcR7bm23sPtG3eOKgVnOvwomvTgvUwuP4YmOPSTBlFCSUno= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8491 migrate_add_blocker_modes() refuses a blocker while a migration is running, whatever modes the blocker is for. So, while e.g. a normal live migration is running, adding a blocker for cpr-transfer only is refused as well, and whatever operation adds it fails, although the blocker doesn't concern that migration at all. Only refuse a blocker if the running migration is of one of its modes. Snapshots are checked as before. Fixes: fa3673e497a ("migration: per-mode blockers") Signed-off-by: Andrey Drobyshev --- migration/migration.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index 7c2fd704890..d5a21da3129 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1866,12 +1866,16 @@ int migrate_init(MigrationState *s, Error **errp) return 0; } -static bool is_busy(Error **reasonp, Error **errp) +static bool is_busy(Error **reasonp, Error **errp, int modes) { ERRP_GUARD(); - /* Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM too. */ - if (runstate_check(RUN_STATE_SAVE_VM) || migration_is_running()) { + /* + * Snapshots are similar to migrations, so check RUN_STATE_SAVE_VM too. + * A running migration only matters if the blocker applies to its mode. + */ + if (runstate_check(RUN_STATE_SAVE_VM) || + (migration_is_running() && (modes & BIT(migrate_mode())))) { error_propagate_prepend(errp, *reasonp, "disallowing migration blocker " "(migration/snapshot in progress) for: "); @@ -1942,7 +1946,7 @@ int migrate_add_blocker_modes(Error **reasonp, Error **errp, MigMode mode, ...) if (is_only_migratable(reasonp, errp, modes)) { return -EACCES; - } else if (is_busy(reasonp, errp)) { + } else if (is_busy(reasonp, errp, modes)) { return -EBUSY; } return add_blockers(reasonp, errp, modes); @@ -1952,7 +1956,7 @@ int migrate_add_blocker_internal(Error **reasonp, Error **errp) { int modes = BIT(MIG_MODE__MAX) - 1; - if (is_busy(reasonp, errp)) { + if (is_busy(reasonp, errp, modes)) { return -EBUSY; } return add_blockers(reasonp, errp, modes); -- 2.47.1