From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022121.outbound.protection.outlook.com [52.101.66.121]) by lore.virtuozzo.com (Postfix) with ESMTPS id 971358017D for ; Tue, 3 Nov 2026 13:57:28 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ysvfvJ4D33imVGuVmSTxrNFM1VqTIcoPHIWpAC3z6Nua/zgNqp8ydIDZdAVRVzhDJ66JumLehhSXDSfxYNKFfHBemDo1mc4dwLOa/3XgDGqNgdpL/RT1k8mHXfuGFLqwJmRHhFm8pUY61m2r3YtwRZ/HnEPaoIZzMdYFmWAyKi/sxmJZ1OdcWabttijn+nV0pWIWnSCQvIyPGsz3m5eLurs3uFN3aXPH7IRT4qxNjB7AbpL6NMR3x2gceq9YvwbUZQw7mXlXHtEgLFhkd18i0bVz7BmKprrI6xQA/yYNsz2VE8CS5EGHi7HPO++qt+DEo+RTgAl2MrWhOROkjXI6sw== 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=YDJC/yOsC1aXE54m4ssbY2jtxd9Nb/LBPEho4Le67OQ=; b=nzrvKLM11qGxnDE7iL+NggnkfCb6Lun8SuHav43pHc/+FGSJFtOb2R8WcvkxIfTiEO17l8cpCvT6qvuBe2w2XiOtuKMMd3jEBjcvaM9DSZYK/nMN67DfwUsW2rt38p7+yAVfTUMo0okKCOVWioSb+jtjz6+f9z8WcmQqXLnS5+hlYmUbH90JjUgejZxq++YUY6gFqkehCTghL7Mzhx9hbkE/Zs5h5BiUYf8ST3wSr2GPnhK5VP4N6sOxZWZ9LBklgas2+xaJp13koTulwuH98d/51Cr9zRZOYkPimrdfQqPqoBA+OCdJhLAyMKGcb8DZrVe2ANhI2TMsnHT+4a5eUw== 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=YDJC/yOsC1aXE54m4ssbY2jtxd9Nb/LBPEho4Le67OQ=; b=Gd7lvXrhDuy0yZkCqLRtKAricQk+uK4PpO3SyA16+xE7GpreOXQiD13xfszVO08j7PmUiB/cippLKkunKr9iS6Ue20S20Z4Fcb/3ebVVOU/iMO2fWS+8+DbPyHT77PfojoSRSkW/XLXC2xk/CtrP6RTujghgGJVqsMJiMhTByzWhLaQoyq5IlYJr1FIot/0J603NQXqyRhTXOHqz7xxx15HrEMSdGjghND225OSwwWZlYVZciMBZE2Ez9h5bWonobZ2SqyCSzbYem58O29oSCkMP1afEvrg0IAAwEjr5E1H9zgC5wqfM+ccscLLkDqqcB+0mCGp7BSHkxeIgYTOWRQ== 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 DB9PR08MB7423.eurprd08.prod.outlook.com (2603:10a6:10:370::14) 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:25 +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:25 +0000 From: Andrey Drobyshev Subject: [PATCH QEMU HCI-8.1 v7 00/35] vfio: support qemu-update with passed through GPU's and vGPU's #VSTOR-103860 Date: Tue, 03 Nov 2026 15:57:15 +0200 Message-Id: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIADzo6WoC/23RTUvEMBAG4L+y5LxdkkkyTfckiKAHDx48iUi+6 kZwI2036C7976ZV2LgWcplknnkHciK974LvyXZ1Ip1PoQ9xn4t6vSJ2p/evvgou1wQoIKO0qVI b4ktilWY1WuccGhQkd390vg2f86Qn8nBz/zhd3l7fVWrDyPNPQ38wb94O07zpdRf6IXZfc3ZiM /wXkw+tQPuGOWkUFeoqhW44xOMxbmx8nycnKCzjZwvZCs6FlJZqaMSS5aXFs+WTrYWqrZFaebl kRWGBnq3IVnEtERVwumxlaYudZbZGU9Nyi44BLFksLC9ycdpZOg8CjW3AX9j17zfmwL+mMba22 lglqbvMG8fxG7I7U8MlAgAA X-Change-ID: 20261009-vfio_v1-a176cddd6b64 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_|DB9PR08MB7423:EE_ X-MS-Office365-Filtering-Correlation-Id: 59dda038-fa70-4c71-64a8-08df39b263ad 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|366016|1800799024|376014|52116014|23010399003|18002099003|38350700014|56012099006|261009223027099003|261102123227099003|261022075727099003|261028144727099003|261021123027099003|261026140227099003|261021121427099003|261022105027099003|261026121527099003|10067099003|5113699003|3023799007; X-Microsoft-Antispam-Message-Info: Z/ih7kpr1Vq04fABAeixU3zQeUKb+PYSNNC0cAPx3DYBY7SuUj25deRe1tX0elTbf+ZFDfaCQQTaIS+InmBoh40M6glXNs65Gzx1CezbOwajyttDOgLbjeKRoYmjA+lKJvN+R0DfRALcLiYTFg08Wf7A8Zx6bjQ7KcUVX2z2OA0wTqItEar4T1GL0k91k2LkI/fV0FsLwO3V1P+9uERXDGt7VVGaHrw/Z3CXyB6xCfKL6TpQJK7a1i0ChlPt+W75K1cobiPmBhd4fsb+P7SZKeKpK0vxA92XiPR+gULKidbjTZpTBUI4ONk3Jqiypw/6+kzQtHs1M1pFvil3VYhTZN1Eu9nXuE5eKPYUGY+tbamz9hM6z0xDZDgI1GMTynRhhEe9/nXZsYEFt7GnNDmWdsp5dS6oYD8gQyLV0b33Orh3fDpL+UL06dzKUTmHc2U58sM/5JIYVS2bXgoFW8SOCx1LIFWshptrXyvkGKuuuV0B4Mw/MBoj7eMRhfTMLcL2NUp1RSGMNVzc5X9hJqIj7wk+GHU99b9Sx2rXU/EZjuYwxALsw415iGouSqQZjRsnSc1b51D3nS0Rg8UMc+JVHqGkXPNVxcr8zojNPdsZ2J88S3dXwsH/BKvx8DBd+SI8RJ7woRnz6Nuw7Z9XjY/Fq9+E0ygbtOJ9FJOg4AqYVYk= 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)(366016)(1800799024)(376014)(52116014)(23010399003)(18002099003)(38350700014)(56012099006)(261009223027099003)(261102123227099003)(261022075727099003)(261028144727099003)(261021123027099003)(261026140227099003)(261021121427099003)(261022105027099003)(261026121527099003)(10067099003)(5113699003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?K0o0ZXluQmJ4SEdmbnRvVVhleEUzZjR5TDNPQnIzR0o0cXlkcmM2N2lFZW1Z?= =?utf-8?B?ZmpZR3U4NEdYRDJFbVUyRGhiMWd2bjlOUDd0SkdiQkNlSFp0THY2aDV6ZENh?= =?utf-8?B?c2VobTFkcGhBNmg5czdSSFVOR05yaVA5bHhqbkVNNnUwa2RXTkZqRVB6Ui9y?= =?utf-8?B?b3RrM0RBMVJPYVE5UVJyRjBPUEh2TUJic1p3ZTFzRzJYdGNKSFdGT3VsdjZj?= =?utf-8?B?bmtpdjgrNlYrdGxlcjhDSnRINjFlRTFhbTR0QVFuNzJuVHdvKzFKZWYzR1Zj?= =?utf-8?B?cE0zVVpYZFRZOUNybWdTMGNmMFlSVkF4VWJhLzB1clRWYUhRS0hWTUxFUW9C?= =?utf-8?B?cWdBK2hyWjlSbmVEQ3pHZUh3cjJrdjNTSFMxTEJrVnp2UWFnTHRxSXBsMlRV?= =?utf-8?B?b1FuSXVNci9BVjJyWVQyR0gremgydDh2M2JBVTJLRDdKQTZMQ0VVTVZYSVZz?= =?utf-8?B?amFHRVE4UUFGVm5YZmhrTnI4eDcrd3YwYU5IcHdaUVhzYS9TcjFQaDFxdW4y?= =?utf-8?B?UDg2OVRRcm5BUzlMb05hOERTV1lsbjIwbCsvMEJJWUVwMkc4cE1zQ01KMXdN?= =?utf-8?B?ZVVkNzdIRXo0alA2bkdFTXZCRU9DdEVldGpzbnlVZzdlK21ac1R2ZlFwU1d3?= =?utf-8?B?RmdsOERxTzBPNzhGNkpFM2lwRkdQU1JoQ0wxaHRMSEdMd1FLSHV1OXl5Q2FD?= =?utf-8?B?L0JzcE9EaEFFSnU4bnd5UnhXNEFtMmdRZHBUNTMwVTRVbkZ3UkVCeXMzR1Vm?= =?utf-8?B?ZGNYM0tadHYwS0QvQjhMbjlYeDhSbTNpQWFxaXIva2JFakdqdmoraGdvVmU1?= =?utf-8?B?bkFmVTVxTlRwNS9yM3BFWG51MVBNdlBmODVlTVJLRHpQU1NKd0pEdjdiZHlQ?= =?utf-8?B?Y3lPaTN5eFhrcndQSjhTSEFOcUlIbVJGUVl3THY1Y1l4RHdiZ25OTVhhSnJr?= =?utf-8?B?c25UWEtubm41QWZvUlQyUVJTT3BwenBCWWFtUEFqbmhJSjN4RnNwSm1YdmR6?= =?utf-8?B?NktveWE5Z3liazZFdkN0cElYWElpQ243bVpGVzBxRUo4QkdhQ292NHdldmFx?= =?utf-8?B?NUpKQjJFUmpYQ0tKdk9yMFRDYWZHeGh3ZGp0YkZpRzgzZ2pOUHVwb3hZNERF?= =?utf-8?B?dW9GbE00MXRQN1dqQlBSRmF6MHlGQ3pXWUJ0MDR6ZnRxZDlDbERwQVJhTkhs?= =?utf-8?B?enZpTk11TkkrOFEyR2RwZWxFQUFHNUFqS3VIQUtmdW1iMTE3REQyRW5TeUlR?= =?utf-8?B?eWpNYWRQY0doWUdvZzRMU2pjNUU2Z25qeHlQL0JQQ25jMWpIOE5MMUpiS01q?= =?utf-8?B?eDI4WXNlSWpLay9IRFhXUWNWYkZSOXFQWll1RWFpcHVYY3dUaXV2NEJIQmtX?= =?utf-8?B?bVZnWUwwbU5xbFgreW1wY24rR2VaRmVTcWlaUWJudlBPNmpDZTl0elIvdmVS?= =?utf-8?B?VWhmTU1iNUpwMnhGMCtGNVFZcnR6cFk0VG8yM3ozalN6Vml0U2ljeUFLRllw?= =?utf-8?B?UTFyQ2hNcThBU3pTSnVWdlByZkZJRndianNuNnlramtJSGlwc2ZDMStNK2s5?= =?utf-8?B?aVczd1ExeUZ2QnBXN2JySHRMMHN2eUU3VHRBOWVOcUlnOVM4NGR0TkI3UitT?= =?utf-8?B?cVoyb0VSM0R6U2NCU3lWcFJHcGVoSGpGVVFXYVJ5eXp1U3hZOVplWG43dUpZ?= =?utf-8?B?ZVZvRUwyRzNuK1pXckZkSHk5WlFLd2FOemFvTE56TFlzRmpXZWtMQXFnRGc2?= =?utf-8?B?VXhBS2tLZURnMUpoUFRRdFB0cjFBblZsTmcxSmJuSmlzejJJNlZ3OTkwbzNK?= =?utf-8?B?UWJRZytWbmQ0MDR4T0E5c2xIcGVvVmRnYkFhMGNXT1ZyOHMzcGtmRkp2QXcr?= =?utf-8?B?L05xNFc5SWZGaEVFckNtZk1uL1kwcWp1bjI3Z3pROThnYUpob2tpbkFKTXpp?= =?utf-8?B?OUV4QThNakJLZGQyL2djRGtFUjdscGFyQ3hkL3hkNUtsY0ZvN1hzTk5oWk42?= =?utf-8?B?dzNadHltR1VsaUREd3FOQUJBTWp2dHlpanRlK1VVcVlwVmpoV3gwcm1tSkwv?= =?utf-8?B?clExRnBSZ2RaRVhYYjBPZGxHU2s0bmZXY0owN0FkVFpEcWFEaWs5U3pBZDI3?= =?utf-8?B?TzlFVi9rYkl3WFFUSUdHSkN6dmZMZ0VFVSt4S0JnMmxiUElxR1FFQklEa0lo?= =?utf-8?B?UnVBdnFFSFdXaks1NFZJODk1UUtZbG5zeGRraWx5RXM0VHBIR0JYd1pSVk54?= =?utf-8?B?b0pSWWRGUHRJWW5QMVdkYktkeEFxRXIvMVdyamNLaStKM1B6MEtXUCtoSTZL?= =?utf-8?B?V0pCaFpVNnphcFlFR0NZNitpeC9BKzJDYng3ektGQnVTVWhaQjRLaTlNcmJk?= =?utf-8?Q?fsaJ3t2PVlJR2kOE=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59dda038-fa70-4c71-64a8-08df39b263ad 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:25.0676 (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: pUYJhgbDcZ4+6qxS6OBTrDGVoBWqRfX5RBJ8rLO54J6Wz5mGw0c3BlZRSY0R+ehkuHgSQCGqVhM75/78fyRMknyyw/ZeR2N8ewKrCs7TNLg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7423 v6 -> v7: Fixes of the issues found by Sashiko AI review. - Patch 4 ("migration/cpr-exec: require a file or exec migration URI"): the message says the check covers the incoming URI too - Patch 6 ("migration/cpr-exec: close the persisted state if the channel fails to open"): the fd is parsed before its variable is unset - Patch 7 (NEW) ("migration/cpr-exec: don't leak the dup'd memfd if g_setenv() fails"): the dup was leaked on that path and a failed dup() went unchecked; the patches after it are renumbered - Patch 32 -> 33 ("VZ: vfio/region: preserve BAR mappings across cpr-exec"): CPR.rst no longer says cpr-transfer preserves VFIO devices - Patch 34 -> 35 ("VZ: vfio/migration: don't wait for stop-copy-only device state"): the message covers devices without pre-copy, which the rule applies to as well v6: http://lore.virtuozzo.com/20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com --- Akihiko Odaki (1): vfio/pci: Grow buffer in vfio_pci_host_match() Andrey Drobyshev (21): VZ: migration/cpr-exec: fix Error leak in preserve_ram() migration/cpr-exec: restore RAM write access if exec fails vfio/region: create BAR dma-bufs with O_CLOEXEC migration/cpr-exec: require a file or exec migration URI migration: close the CPR state if the outgoing channel fails to open migration/cpr-exec: close the persisted state if the channel fails to open migration/cpr-exec: don't leak the dup'd memfd if g_setenv() fails migration: don't refuse a blocker over a migration of another mode kvm: tolerate ioctls after kvm_close() kvm: fix coalesced MMIO flush racing with kvm_close() migration/cpr: add cpr_is_in_progress() vfio/migration: don't migrate device state during CPR vfio/migration: don't assume the device is running on CPR incoming migration/ram: don't start dirty logging in CPR modes VZ: vfio/cpr: don't close KVM on cpr-exec VZ: migration/cpr-exec: abort cpr-exec if memory can't be preserved VZ: migration/cpr-exec: take the vhost-net devices back if exec fails VZ: migration/cpr-exec: don't exec if a vhost-net device can't be released VZ: vfio/region: preserve BAR mappings across cpr-exec #VSTOR-103860 VZ: migration/cpr-exec: allow cpr-exec with VFIO devices #VSTOR-103860 VZ: vfio/migration: don't wait for stop-copy-only device state #VSTOR-141821 Arun Menon (1): migration: Fix regression of passing error_fatal into vmstate_load_state() Cédric Le Goater (2): vfio/pci: Reject invalid MSI-X Table and PBA BIR values vfio/pci: Fix information leak in vfio_rom_read() Fabiano Rosas (3): migration: yank: Move register instance earlier migration: Free cpr-transfer MigrationAddress along with gsource migration: Move CPR HUP watch to cpr-transfer.c Igor Mammedov (1): q35: Fix migration of SMRAM state Mario Casquero (1): vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Markus Armbruster (1): migration: Plug memory leaks after migrate_set_error() Peter Xu (1): migration: Fix crash on second migration when cancel early Tycho Andersen (AMD) (1): hw/vfio: Fix liveness check in vfio_connect_kvm_msi_virq() Vladimir Sementsov-Ogievskiy (1): migration: vmstate_save_state_v: fix double error_setg Yanfei Xu (1): migration: ensure APIC is loaded prior to VFIO PCI devices accel/kvm/kvm-all.c | 24 +++++++- docs/devel/migration/CPR.rst | 12 ++-- hw/display/virtio-gpu.c | 22 +++++--- hw/intc/apic_common.c | 1 + hw/net/vhost_net.c | 62 ++++++++++++++++++++- hw/pci-host/q35.c | 25 ++++----- hw/pci/pci.c | 15 ++++- hw/s390x/virtio-ccw.c | 17 +++++- hw/scsi/spapr_vscsi.c | 10 +++- hw/vfio/cpr.c | 11 ++-- hw/vfio/device.c | 29 +++++++--- hw/vfio/migration-multifd.c | 2 + hw/vfio/migration.c | 68 ++++++++++++++++++++--- hw/vfio/pci.c | 25 ++++++--- hw/vfio/region.c | 51 ++++++++++++++++- hw/virtio/virtio-mmio.c | 15 ++++- hw/virtio/virtio-pci.c | 15 ++++- hw/virtio/virtio.c | 10 +++- include/hw/vfio/vfio-cpr.h | 1 + include/hw/vfio/vfio-device.h | 2 - include/hw/virtio/vhost.h | 2 + include/migration/cpr.h | 7 +++ include/migration/vmstate.h | 1 + include/net/vhost_net.h | 3 +- migration/cpr-exec.c | 54 +++++++++++++++--- migration/cpr-transfer.c | 33 +++++++++++ migration/cpr.c | 22 ++++++++ migration/migration.c | 126 ++++++++++++++++++++++++------------------ migration/migration.h | 5 ++ migration/multifd.c | 2 + migration/ram.c | 7 ++- migration/vmstate.c | 7 ++- tests/qtest/q35-test.c | 6 -- 33 files changed, 546 insertions(+), 146 deletions(-) --- base-commit: 1c84596876fb77b3e25d56cd4a4fa0c32f1faa32 change-id: 20261009-vfio_v1-a176cddd6b64 Best regards, -- Andrey Drobyshev