From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11020074.outbound.protection.outlook.com [52.101.84.74]) by lore.virtuozzo.com (Postfix) with ESMTPS id 8CD4D8109C for ; Mon, 2 Nov 2026 10:37:16 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HmAcTtzpiTs5kF/vshiYid/W+7Mn2IUR2FcJn3icxGIuwtiwJAAL+fUqvAKAZHMSG9MoaEYNbGbmVny9YOiTxMNXIyVk2N0Bxj26xGZSJb8cJPFOQ4gHGS4w01Galtqg4zqx8mi0F0bGjsBEkbYZ0ZlzNkzbgRnVlFFlgmr7cR36jW5C+AoymcaWbkKTwnF8Vp/k9nIb6Xdj5Q/F8hUTMrW3YqlfngDRPNIX4pypYwU7jbWeT/PZt50Dc23urvMlw3EVDwd6OW95xgTAlPCVmloXIAsWnsZ0CAImZ5G9cLPhR3fWWs2aRgjn1OQ5tIn1puDWAyfxdKk6O/b66JfBtA== 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=L1fxK5/XcvX77FX1c5p4+GB++Q11eKDiyHP+woge6mc=; b=zF84quqvdDuICg/PCzDbErfHCKzfjkSKAfkbd1QaYN2/lXwT8qD/Ua1jcsONRh1v4PxJz1ylZBKH3c/7pD2aTloFoByEeSBWVBk+5esiJ5LOa6hJVPjDoXOdj2yGMgJijXVvLegsOv9vlcIcpQTwVv3pKXaMBN1Ch1CIk1tS0FWPI0r6ZMj9v3X3sr+vpUdgpicY2QdSwuIFLPyg3TPjTX0163V1/5iutNXSKvvS6wd7E06XnICW9bSp704o5yAtKy0ukU5YktbhJqf2yvpS0VcEoEoAM6p+QsLiMcaZy3HrSykXHhxNd7nbM0RbM55iF2i8tFbuBMrRT/YMTqAbMQ== 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=L1fxK5/XcvX77FX1c5p4+GB++Q11eKDiyHP+woge6mc=; b=bBmTtTzuJeUdu2MXTLogTzgQhesawooWXUnRpRYzD5l4xRD3ADeNatxVbnLpCxa5EUC8QZQtpCn9JMRReF+tXMMj4aWSG1EA/hwk5IJrBGmuAgArEwnvyqLdiNtQLnOfwJis18YH09t2dsehFlezmPHuT3GKXfucN0QNqNAOkUFOGVUtWSP0f6+ryzHaXvSmWlyl4UVvu/XmpKl91x8jefVFi2xdU7fq6EVcOvsU/oUNea4T4Lp1W5xdQzs1yNOmdQqkzhRWYfK2VbjdbzMnDa7u5cdC7MiY4ZchJtN6SnY0a4IDrnzWCQT6MN75uDe+WGrPT7XfDVy62hrrZb5QUQ== 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 DB4PR08MB8199.eurprd08.prod.outlook.com (2603:10a6:10:381::11) 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:37:14 +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; Mon, 2 Nov 2026 10:37:14 +0000 From: Andrey Drobyshev Date: Mon, 02 Nov 2026 12:36:48 +0200 Subject: [PATCH QEMU HCI-8.1 v6 33/34] VZ: migration/cpr-exec: allow cpr-exec with VFIO devices #VSTOR-103860 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261102-vfio_v1-v6-33-9bc7cabc850d@virtuozzo.com> References: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> In-Reply-To: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIVP296CA0048.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:353::18) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DB4PR08MB8199:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ea7b918-7c7a-4f0d-e5e8-08df38cd2ab6 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|1800799024|366016|23010399003|52116014|376014|38350700014|56012099006|261009223027099003|261021135927099003|261021123027099003|261026121527099003|261021121427099003|261022075727099003|10067099003|18002099003|22082099003|5113699003|3023799007; X-Microsoft-Antispam-Message-Info: sWfeytYRSyDO6ey7rLNqNscWZC53UDlvuijJSdRPY5oiDSDF3JjiIEqLF8XqjOBYUNZwQMrIMZDltKd/JPKziKliR2OVU3AtVjMoULwlpdl+jg51B54FsC1hIrIi3n87qW7FNJWEM0x345Q7Gk8z9zlxPP+ZAfA3eelrZuH0c+ntlnjBCaKJF5m3OWDB3hVcAeEJt6Gj4SnaQbpKATx8on7BrWqnwDzyXIzcm1SxTTYOHq63q440Ovonjubyoq+mBh/oQJp8clkcGiiI/IVugX8H9pusHkhaVBjRoP245KZHcs8URcDI3EvkfV8nuJ4TCfw4kjeXhAGL2zfx0EN1lvwjWLBmr5OvofzwMeEf+BlDXu+xIgql3gJpc4KoyEvlu1guOdbc6nt3RyZ2GJ29VJogcZ9/vhVAXnBdRqupBfltk5M2OtFXEpUjpKQCnW6Az2xQl36UsP1pBnQUwg9dEojUji1f3/PlgU4zo3RqjJSATKUJ3f5kRG1xinTXSCvTX1uuGwot2yy3jWabbyxA17RxB2Bi2inc3VLkmlItE0ro7svXW4QugrhrWtGuRIFWyUq0Kp1lOIze3KySpEvLnS6alE+x99L6+JS5U/COJ3mQi76Ab3QpsItYpnDouQr2dAITj4hRlIcvXdoU90Yf1P+HZ53zOWZVmYr3DTXu0h3TtaridcWZETe8r3YyQ95V11Z76Fno9ih9tihdUHXSP7DIK9SX5BNUJjefnwi4jKM= 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)(1800799024)(366016)(23010399003)(52116014)(376014)(38350700014)(56012099006)(261009223027099003)(261021135927099003)(261021123027099003)(261026121527099003)(261021121427099003)(261022075727099003)(10067099003)(18002099003)(22082099003)(5113699003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Ujc1RFgrbitrQzZ3TnNrdGJneWFDRjI4cXJvNFpEUEtSRlhISjNSdGVJaEg5?= =?utf-8?B?NFBSbGh4RXBzSXo5VlVWL1Z2UGpsOTdqOEpBNDBKWEt3c2U1TVUwSzBzbW00?= =?utf-8?B?bmptUTI5QTgyVFJlelFRelhHaGkweU9HUW1YckIyL0pPSkwrNEdQdFBhTWZl?= =?utf-8?B?NlpPOFAwTTcxallUSTQ0SnJ6aUwrUVNuWU0xVWhINlJmbGhNekVqOC9HUWZl?= =?utf-8?B?SEdUeXVnckRvZnpqa0Z1MHJLNy9laGRiN0gvQ3QwcWIwejNxaVRqMTg5SThl?= =?utf-8?B?bHdmUitWQVJyczBuQ3M2b2VsL2Zuc0VkMkJRUEM2S0o1dTAwRXRKZTFuelBN?= =?utf-8?B?cXpTQ0g0d2ZMZEVmakdTZVdzRkNnOTd1bnl4Nk1DK3JaNnp2SlZ4RDVhTk9G?= =?utf-8?B?OXBtWithdlNQeWVyVVpGSXh1OSt3akl6dis5VDlDbk1LUUtsNDk0MzE0VHQ3?= =?utf-8?B?Rm5naGhyOUdNQURzeElPNjhKUHlwMUV0Z0F1NnY2VUlaK0loV3I4RGhYc2wv?= =?utf-8?B?aE85SXVSKzlQNUtPQ0ZHaVg1UldyUVRKYlNaVXZpc3ZsZFRCRVVTOXJHZkg1?= =?utf-8?B?Q00yeVhLWVZZTXEzQWFyWTF4bDFkN2VyNjdreHJFTjhMRmVIVGlxZ3Z1Y1J3?= =?utf-8?B?TlNtRnZ3SUJaT3JiSmxOUzBZRnNaMW5FaFpiUGVONjJFOUpNRnR4K3I3Sytn?= =?utf-8?B?VU10OHUrRndNMEJLSVc5OG5scEVNSlVXVVYzaGpKTUhuYU94anpmb202MEF2?= =?utf-8?B?Rk9yK3U3M0EwbitxSDFuNHFCSC9aYk1pODBEanRxU2N5MGdLaFREaG1zQXVo?= =?utf-8?B?Tlk5SzFHQ0NVM3VFM3dJa2I0SHBYTmJOQWlxa21TZ1ZpSlVJcDJ2RlUyUzJH?= =?utf-8?B?NENxSHBwUEprUjN5ZWNmS3g2REFuV1NzZlNwVXQ4SWVyOVFDZW1NbVdhaGpM?= =?utf-8?B?RlZjYkREYktmOEhTcjNCZmY3eFpFUnN6aTdIc3NiM3dERkY5c1BheHg0Q3JT?= =?utf-8?B?ZE1iaGpFMlFERWZ5RVhPa093cUt1dGdxc29vV2ljcHllM1dCQ3dnaG52bmI0?= =?utf-8?B?dllveUxoRnVoeUN6TE4vK01KQ1Rvd3NyMmhSTFRTSEQzZXNlZjZBdDFkSXJl?= =?utf-8?B?bHpSaUdDc3k1czNIL2RBcWUvVU9SaW43ZkNjUDZXZVEzWjd1MzZHSWFYU0l1?= =?utf-8?B?UlRoUFhIMGN0N1ZFM0p5c21nNFNVUlJnQUNRcDBqdXFyWkh4ckgxYUs3REVD?= =?utf-8?B?eHFzNE80V09JbjF1MU84SGlVVmlKZG5YUzZqTjEycFhyYUl6WjhSREhYUnlQ?= =?utf-8?B?Z29EZm4xd3o1VXg3V3VhLzdVdXNseDhrelBob2Z4UVFYdkE1Tm0zN0dha1Ax?= =?utf-8?B?N2tqZEo0QkVNQmovS1h5a0dRajgwR0lxUFZrQ2hDWWx4ejFGdjBxU1BhNHdw?= =?utf-8?B?TTBNWWtDNE5jbzgyQUhmbjJPSEF3cVovOHZRcWdyVnV1WktibjJ6cHQ2clJy?= =?utf-8?B?REtPOVUvZGhHWERzSlQrZktJRkRRVXFQOWVveWwvemwrK05rSGpVQ3h2VFhF?= =?utf-8?B?a3F6WFVHamFLWUsxU3R0R1k1bk4vM21Ia3ZPK2gwUkVuL3Noa21TMlRHQXMx?= =?utf-8?B?NmduVk90T2R0bmFXU1NjTU9YbFpyMi8wQ2kraUdwampXNEEydSt3UVI3ZDVZ?= =?utf-8?B?TXhlWWk3cS9NeVl6R2RZbmZEck1UbW1WWmZxaHpkWEdFOGVDVEthRU5RUytX?= =?utf-8?B?cEx6TUlhUzU3NUxVVVdFTTFiaXg0KzBlSW1PelM0VmxLQ2JxZFJvczU1WURU?= =?utf-8?B?NWwvdjRIdjZNcHpRSnlUTW5iVFBWNGU0eE5LNTBXeXpVd2hGNG5pbjZaK3Bz?= =?utf-8?B?YjJLYmczS1dMeEVQZDVTTzJLYXhldlgvZmczSFZXaERUR0hOZFNuazBMTmpa?= =?utf-8?B?Tyt3ZWorNzJoU2lIRE1FaGZ4ZzcvNC9wVWovOW52RnNtZ1VGZGNIZmo1bFBW?= =?utf-8?B?UXFkSkdWNWJmVWZBUkMyQ3VUb1VGaDh0MDBSK09BZVBzVEcwSkxiOGtkYmg0?= =?utf-8?B?TEcwb3d0bHRVNVdwb1BFRlVTSDl2ai9PMjVrRmxBMlpKTk04anE4RUFmMVZX?= =?utf-8?B?WWRaZE5mUllpWE5IRVFEcEYzM1IxaTBpcHZTSDVUYmt4Z1pJQ05iSFJlb0M3?= =?utf-8?B?WU9pZjZ4ZVo5WUFkMUMyWHdzeGQ4T3FVWForeUVaREU1ZFpnekg5ejVQQW8z?= =?utf-8?B?VlhURUFSeWFHQmxjcFdJbnV5Z3VHaXB4NSszaHpVdHVOdVRRaFVRcGZTZ0JO?= =?utf-8?B?SzdJN1d5cGxjMVlUT2dqYnFzenVSRVMyMDBtL1o2VTRKa2szelNaS1g5anA1?= =?utf-8?Q?0b2C+CI3w+fC41Lk=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ea7b918-7c7a-4f0d-e5e8-08df38cd2ab6 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:36:34.7987 (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: 9jYvoTOsqA15WRxRKRjU/4uzMZ9WFT6+zuiCV//eYqhLnjev80FWuphhTywjtlisCIWc9uybX+XffKAvruRCZrdvwPpW5YbTz6ySErMqQG4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8199 Commit bb8da93ddfc4 ("VZ: migration/cpr-exec: enable checks prohibiting cpr-exec #VSTOR-108564") introduced restrictions for cpr-exec migration mode. Among them was prohibition to do such migration in case of presence of any VFIO devices. Now we want to allow migration with such devices in scope of VSTOR-103860. Therefore, let's lift that restiction. Signed-off-by: Andrey Drobyshev --- hw/vfio/device.c | 5 ----- include/hw/vfio/vfio-device.h | 2 -- migration/migration.c | 3 --- 3 files changed, 10 deletions(-) diff --git a/hw/vfio/device.c b/hw/vfio/device.c index 2a7073ccec8..d1b595adb71 100644 --- a/hw/vfio/device.c +++ b/hw/vfio/device.c @@ -36,11 +36,6 @@ VFIODeviceList vfio_device_list = QLIST_HEAD_INITIALIZER(vfio_device_list); -bool vfio_devices_present(void) -{ - return !QLIST_EMPTY(&vfio_device_list); -} - /* * We want to differentiate hot reset of multiple in-use devices vs * hot reset of a single in-use device. VFIO_DEVICE_RESET will already diff --git a/include/hw/vfio/vfio-device.h b/include/hw/vfio/vfio-device.h index 935000f0074..fc28f580ba3 100644 --- a/include/hw/vfio/vfio-device.h +++ b/include/hw/vfio/vfio-device.h @@ -162,8 +162,6 @@ VFIODevice *vfio_get_vfio_device(Object *obj); typedef QLIST_HEAD(VFIODeviceList, VFIODevice) VFIODeviceList; extern VFIODeviceList vfio_device_list; -bool vfio_devices_present(void); - #ifdef CONFIG_LINUX /* * How devices communicate with the server. The default option is through diff --git a/migration/migration.c b/migration/migration.c index 821764afae9..57aa0dea264 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2115,9 +2115,6 @@ static bool migrate_cpr_is_blocked(Error **errp) } else if (cbw_filter_present()) { error_setg(errp, "CPR is prohibited: active block snapshots (CBW " "filter) present"); - } else if (vfio_devices_present()) { - error_setg(errp, "CPR is prohibited: passthrough (VFIO) " - "devices present"); } else { res = false; } -- 2.47.1