From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11021086.outbound.protection.outlook.com [40.107.130.86]) by lore.virtuozzo.com (Postfix) with ESMTPS id 0522980B20 for ; Fri, 16 Oct 2026 15:26:23 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=my2p6IcKgS4TyKK+YwIO9U640Evu9JgNS9VHnNQA9K3PgeoNmcbT/L3QvTBJ8iEIAT/qsvK7tDaCPcxngRnLZIjCbkrRsPt1KuO8xAnUcuo4k7fmNk3C4Zd9Hid3I//edcqs8weHbfcYUL5aCcVzubQihmx8pePabtIukeMGWtP79p0Lml27Ry+WAzt9ywTlfcDkogdfpDcJkhv8rY8qv1nvfe4DU30icsmLuTccoVbuLz43vMrUa/opPy+sfZjmI0fIAdXlfUvB1E0E8cxbGMPba6gtc6CoicvxvW2OaXY6i5H7iN/QhavILFeTWrYm64PDqGG4CgLdIZiWjjNj4w== 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=a3arz0qk1CoLlaK4OUyynJzw469KS7GfCXsd4XtPZWs=; b=F9hjS9FK0FZBoNIBgsg0HKJd6b3zxxrgDrnqMqYsiY7hr04y9mmfMkTUudREUAFynEUi0jojO0Rg3FEu2C0K834cXsvNyUqPMw+2gsDN480jLMgy3quNe+Mz0CTMsXNdwnvkYk4QGztI9cjkFQUwcE6WlDRe7YV0sOdeMnT7p1KL5V10HeGHTrbl4AEx2RN2M9BbOvvdreFNgpmgR4196BmWDhIzWDnDcd2mF88NBI6zZT+i4ORdKsRj4nHiFL2zGPNPUKxqz740Hp4c+Yf1m1SV7x+D/FwHwJXPEgsfFZmhkYnORwhpkP/wmBULUhUVK2N740I/pfOHC0CSjGu6uw== 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=a3arz0qk1CoLlaK4OUyynJzw469KS7GfCXsd4XtPZWs=; b=UotPW0yufHSEH26jTFiGU6KJurh3AW6DT4rnZlYx2DqQB1BD/On8lWFE2Pe0mSTeQ/+eoYBE/qTq6pkLJ/0o2qZ20hIFenGvsWvjCAdk3t/D7/w3hRaYQ4cjzkcbHVK95J4C/u0XZkFicu2snID5NVhMODGZ6lIVEAVPUiUJinXUEusANu93d1dXGQv/JKYllR8/M/dD/FtrttStGyENp/XimnWhhVJCG+TRZ9bdiMgZb22XWfvQS/0EOJHMxMlkj3ARrqxnnOVhzPbpOF/07nO20PxnWNrymhzetz+847ylvd25PLJBZrmgT09eJmsB0cS1um243o+1//IhS5Ms0A== 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 VI0PR08MB10941.eurprd08.prod.outlook.com (2603:10a6:800:250::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.7; Fri, 16 Oct 2026 15:26:21 +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.0546.006; Fri, 16 Oct 2026 15:26:21 +0000 From: Andrey Drobyshev Date: Fri, 16 Oct 2026 18:26:26 +0300 Subject: [PATCH QEMU HCI-8.1 v3 28/28] 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: <20261016-vfio_v1-v3-28-47487cb5a8e5@virtuozzo.com> References: <20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com> In-Reply-To: <20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR10CA0088.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:803:28::17) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|VI0PR08MB10941:EE_ X-MS-Office365-Filtering-Correlation-Id: 93afa385-84b7-45c2-eb49-08df2b99d2c9 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|52116014|366016|376014|5113699003|10067099003|22082099003|18002099003|3023799007|261009223027099003|38350700014|56012099006; X-Microsoft-Antispam-Message-Info: 54P2c/IMF3ht1wpoqJJ1IsS2p2suq9eP1up4S9U56+ezQ109cn1ase8y/e/QsOc4LjJXosNyS7ufytygkXFoZX2kiz5S33pTsXO4EmIRy8eVdcvfgBr2PYGgFG5wnNr3PhORBkFO3V6YU9WmJEp8ttI0jJB5M9gHic/ShO1iunkDn7/zCEmtWLfxcp018TMeFGC9FUte1S2ZsTt64nwH0AC8olIv/27b63WW2WGhlbo0k6tuwNEyfI9Rh9ji6Rg/9M+ugT68RakW6TaYC9I7cGI850MZYcHP2j1TyQVfsQ5XAo5pqdP96ly4MZVIYaB8fyu5Zp1+PptUuJL+ixIZ2f4/ew8Eb+lEeNSv7IhgWGyWmgP7Y053bfjUNc47gxtOWrkk9v97fVBNJZu5rFd8a5sdhxl2Fp6M1/Cshy0UUsFYuHcmNe7cYblLBS36iX9bkK0VPEdQmXlwwhVZOsq8jvR6+UWy9mrJBqs065cRxeDjbQazDCsb1QE9SJICT9PkUccFstAqlQ+q4AWu9AewUEbZOmZ8I1wlcKfSJIBjuZUXIkXnTPqmTmRlKD+mid0zfg1e5CW5j3zHsr5fd6jDKp3ISikf/FR/FA1MotcSbdn/i55PFM7jCUpniZsuQUgCM+g+VrEJ/KcNKqknGrw22EVm/xeJitODiKdni076Y8F3Bjik+zivFnTHcuEhzScvh0As0ZwVcuu90K0SZAGvAzny7HVe0OT34webRTMUPAY= 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)(1800799024)(52116014)(366016)(376014)(5113699003)(10067099003)(22082099003)(18002099003)(3023799007)(261009223027099003)(38350700014)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZnFud3JsN1U2VTBISGY1cDVBZFpadDFZeS9wNkUzOXBybjR3bTVnRDdvM2k4?= =?utf-8?B?M3NiMFdCTnMrWk9iaVpiaG9GRmVtR2l0SUQ3MmpPczRpZklzZTEweFlsOHkx?= =?utf-8?B?eFY5eUppeVZKbDVPUzhYQmlXd0VsYVl3UTVjcVFiYW53NExpNkd4dDhhSy9I?= =?utf-8?B?SlBldVYxRmx1b0VUaTg5cURhTkJlRTJPOHVTTVFkWjMwaTc2c2owQ3NVTkx3?= =?utf-8?B?dEpERzA3L24vLzdvR0plMjdRdW9CSm5oRUkxc1ZIRWtWa09EWVRPRVhZMHdq?= =?utf-8?B?NU8xbzNqMG5pcVo4VTNxQm5PK1Z6d1poMGJBWnhzUzJuZ2VuZDFVZDMxc0p4?= =?utf-8?B?UHVCWGI3OThiSzErbVFBVitISW1wODN1WEhLOFVHQ3dhclF0ZFN6Sk9zZ0R0?= =?utf-8?B?ZTVHcmdBc2lIRFpNbmZqMTFsNjBFL1UxTm5OdHFGVFlld1lMVGQ1QXk2cUph?= =?utf-8?B?Vnk5dmtqdWNYTG9neUZxMmxqdHpEODVteGNqa0dIbEhNWUp2c3BRUm5Ka1BS?= =?utf-8?B?Qll1aXNHaXdZUC81Q1lZYnlkVlEzU1IzamR0Zzd0VDV0VG5pUmFxRVhFRXJo?= =?utf-8?B?MDB3YzhFMlNjNjZ2REZFWVFvODRKSWJ6MDFmTURGSzhmYXU4RDEya050VEpa?= =?utf-8?B?WnI2UnZ1cExPMDZKVi84NzRRNmNUdGhnZVRXNkJkLzJHVWZUSHZWdS9KMm56?= =?utf-8?B?enhzZUE4WmlSUnRzNTdoN1VsWDkrOHJJemxGcnBRS2w2OEZPWHIzWG55VEls?= =?utf-8?B?cDc1UFEyRHQzdmo3eVhodVUvS0tFS2s0bFVZYVRwKzFTMFZTaTFiODI1UmxQ?= =?utf-8?B?ejc0WlBuRXB4cENJcUM0MDU4djBYRFN1ZkRmM3pwRVdIRi9ua2htQ3FIQzV4?= =?utf-8?B?clRwZkRvbXlrT25TdUpzT0dnTG5TNGxQM010d1JHR1E5WWRDdERxQlk4RmE5?= =?utf-8?B?b0FqamRkQ01QUEtPeG5vbVFGbE1UWkMxTjJia0JVREtFY0srK0FhdHB0eXFu?= =?utf-8?B?ek9YMHRsd2JmMHRGbU92eGdCZCtGeU4ya0VnZWZhenM1SUhEbkdLc0ZSVDBU?= =?utf-8?B?OHNnZXlFckdZNDNVdEpwRlNHR0pNR1FKc2ovNTNJMWx5aXprNnZOd3F6cmZT?= =?utf-8?B?cWt0aDlGQmhMWXRXRDRMWUNaL2pucHYzMllqS0FuRkc1YllxZjJHNVFrRFp1?= =?utf-8?B?eml4MXlGUVJaOVNnVXJSM1dQTmR5NzMzZm8vQTRxNkJJK1FPYnVOYThiSWs2?= =?utf-8?B?SDNsWVpBblVpaEdjM3JhUDVaNzIyZzdxN0lwOG52Z3pWWVltcG9TVTllMXZI?= =?utf-8?B?akdFeU9mYkhXaTZMQm5hSXQ3czc2SmErMlNqRzlCZ1kwVnV6bTM1eVRwMEk1?= =?utf-8?B?SG4wNnpPRHFsUGx2Y1JBRHlWTUtRVUhRaDQ5NTIybXpoVmw5TkJPOFlucGty?= =?utf-8?B?dUI0V2ZZSERiQjZIc1BUV0laMU1RTWdWVDZsRTB3cnpuK1k3bGt1dWx1Nkkv?= =?utf-8?B?cURNRXFMTWxmMHNGYk41ZDdpaGFIL2NIdzdkRnpjVXlaYnM0MHloYytrZUg4?= =?utf-8?B?a1hVdnVjSm5ZTjVmSGtITEhKMXBkL1ljV1NidkJEYm9oT045bmpGVmQxMzRH?= =?utf-8?B?cWc3ZzZ3OHR5UXRlSHA3ZjdBbkxYRHVSTnhzM2RTVVd5Nmx3Mi9TVFNXK0pz?= =?utf-8?B?WFYraEN4eXFVVjZlQlh2VEVIamVTUEdyeis5Mk9kU2lXUklTMXpKQjJBbFJ0?= =?utf-8?B?OTBSMGgzZXJLbXlSdm5VYTdMTXZOOURzUlVZbUVqaXlkeHQxM1AvWlVXdlgw?= =?utf-8?B?NVRweEtyTWY5enIxVWFiQkIvK25hMnZVOW85UkRra1JDMlEwNCttTXUrRzZ2?= =?utf-8?B?SE4xSVVMaW9XQWprZEE0dTJHdXpDMlJtcW42NFd3TUdEOFphdTgwb0E3WEtY?= =?utf-8?B?aFdxRDJvNVFCTTliUVZHK1FnRWRpZElJRWg3MVkvaG9aWC9hWjJKM1pNVHE2?= =?utf-8?B?WUxqeXk0dmNCWi9xUUJ3eHRLR1p3dGJpMEZjbTBtL1dORmpLSWNxSDlEQm9N?= =?utf-8?B?eFpjeWVXZEJhRXF3eUczRi9DS1N4RXd6dnFJUHZNTDFGeHBsRFBOUCtEK0Rq?= =?utf-8?B?VEtlSTVRNlZYb0JBQ2UvYVRxbFMxSjliZ2dSRzB3YlVlTm5CclBOcy9pYkl5?= =?utf-8?B?N1RaRHY5c0RrT2JvdnRSelRtNGxNeGZNcklWemMxS0RSVjFuY3U3cy9TbEtO?= =?utf-8?B?STBoUkZNYzZkS1kvQkwxMm04SXNUUlFtMlIzRlVaUGtodGtCaFloMWV2S2ZI?= =?utf-8?B?RlJEemNiUllpd2FJaHhaSGx4dTdGb0dta0Q1NFMwZ3I1ejMzdzlDWHdkck13?= =?utf-8?Q?L6vZFPGfNvftGKOo=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93afa385-84b7-45c2-eb49-08df2b99d2c9 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2026 15:26:17.7729 (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: MhJvxXnI5sTy2Ur2EIW6jbjJbwj3dBfwits6IAIPM0Jbo7G35UtzQw2uNxrNwjF0LJyHbTYiiJXethDwuVuvXmA8JJSyzl7MyR/c//2/Bfo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10941 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 f48e75e8fad..b7c93e2e5ec 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -2103,9 +2103,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