From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022117.outbound.protection.outlook.com [52.101.66.117]) by lore.virtuozzo.com (Postfix) with ESMTPS id 09E4C802A5 for ; Tue, 20 Oct 2026 16:30:55 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VzYfcqG+04lys5K6g0Fo1cQSew+yW+PW+Qgmv78e52+l0e/tGoEHQYyY46i1YOJK3rTCoMVKmqFayOBmkSRtbYJUKVH3bLsyeTTKiWxwaHm5/2pA6htQWEMRP66/zgDAqDa8CbzUNoFb2COxmt+vsFt6FzCtBsEpoSue2g75/4CSl1eyy9m7tbxKpJnq0M/ZvQyZg5txFbT43CQq9RHvJv8MIKNhcDieyU7eZlYtd1H0wTLjTx/4bBQBI/ZnmMdAQE1vD04cen0UUZI1rdNMzGHb4/X7MfocpZjcsWuTw4jGHDdu3BUerr+pAiksuzdsRnx+3zl+DN8zar6tXuY0Rw== 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=QG2BU2OjqUu28trNn4AxGWG6wNdSCnBUadlm3h9Pi6E=; b=gwdkarzYdukKpxZh0CNuDDBHWnCBdaDI7pQqAdDPnMuSx0ooc3Uk/YtMFM9t0Gn93ICsBV8GWnYNBReRH363dw2VuhTsrPNPGAt2rOpo+mgg1Ifbc+a+lybhfrOA18T8N5Y5XFHX41hHxQA32/44fo1m3/LSENRt5G2MHqZxPaHh7R8DaICJCx9AmBIAadqv+hOj9RlOB6AwL8aRTjIlnp6G29B9+52uhzHyguRcU1FVGVRJAymdn0XmuAUKD3k+NuVg5vYphwsDTbUHTcMXScOsVSsaeLZU+iN+6gCu4nuHqqisrEyV/LmwX2mFfyVhLXtCNBPulcK8A7+NsRrvzg== 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=QG2BU2OjqUu28trNn4AxGWG6wNdSCnBUadlm3h9Pi6E=; b=GK8OVNxcG9CY5V0vZ6tyKY/9muNb6ICf/6lkQObFiP+Kye3w4JCbgSZSVctRczuGdb77L1Y1iOC6RrRu063O80ndIzhXhOeLnsK4LrYQRhwHJNMhx5SGiwZa/rA7lFM8CVH6CRjMOIGSk6COBzV77gXKnPooQT1b9HNssDQZPzkgVqsrWsO91PPskFozE5ysTY6sp02EXymbg3dK0a1ugu/SFzhBMkTQ0KI17ydIhy2udkJI815bRkN5NiOPZm1DP52+tYtU1mlxVDiYuqZ01Iz0h8u012fTjHmThZCjNjvPS7tF36i3mE1asxsqmPpJM41LyHfZSt7o7Ja0Jw/aaw== 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 VI0PR08MB10683.eurprd08.prod.outlook.com (2603:10a6:800:208::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.14; Tue, 20 Oct 2026 16:30:52 +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.012; Tue, 20 Oct 2026 16:30:51 +0000 From: Andrey Drobyshev Subject: [PATCH QEMU HCI-8.1 v4 00/31] vfio: support qemu-update with passed through GPU's and vGPU's #VSTOR-103860 Date: Tue, 20 Oct 2026 19:30:40 +0300 Message-Id: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIADCX12oC/23NuwrCMBQG4FeRzEZyb+okiKCDg4OTiKRJ1AgaS WrwQt/dtA6KCmc5l+8/DxBtcDaCYe8Bgk0uOn/KDev3gN6r085CZ3IPCCICI1TCtHV+kzBUuBD aGCMqwUC+Pge7ddcuaQUWk/myHU7HMygHGKxfB/FSHayu27x2u3ex9uHW/U64gz9vciFIlC2x4 ZVETI6SC/XF3+9+oP2xS07kw2L6tiRbRinjXCNFSvbP0k8r3pa2tmCy0BVX0vJv2zTNEwF45q0 9AQAA X-Change-ID: 20261009-vfio_v1-a176cddd6b64 To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0056.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34b::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|VI0PR08MB10683:EE_ X-MS-Office365-Filtering-Correlation-Id: c60800a6-c578-447c-3733-08df2ec78125 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|52116014|376014|366016|23010399003|1800799024|261009223027099003|10067099003|3023799007|5113699003|18002099003|56012099006|38350700014; X-Microsoft-Antispam-Message-Info: eRG3s++qdyJVG9XaPDNI5KCagZTnVoKmICHlZUCjIaXYmMXC9yt7fnk1OIdy1JGn7UdKZE9ovXugZE4EgVYxUGN1xJD1OQ29MGp49d47IQCj+jWuGFJmpX6lytNfc+76bnxuy4hGK0U0o7/SLKklfrah1yvUnyZJ5XnP7SFuOSwM7CUsKMd7l1SOKRm7KVgtNpsMNGAnIwFx820SfdfSLe3qwQRhr3ZCEQ9afu3Vn0oEjpcICGCp20o3xRde0tdh4S39wJ+dTN8UhQOqmSK5QByrVIKOqlSHI8a1Nq31axj70sdGLV8ECBFZHFuYHkJZsHFpKjohwSEZmO8WQXvkK5hqxDA8WhroruAtFWCkEn9oln4dkaIYrS1sIRD6AWXcQnNVGSouAZKZGD153LGAIOfj0q8cYjrxtmVp+phJwfOnNr1iNdJTIdc2dk9T5SvkwgJPWmvNKKRh2h+WPHuxBnPajqplZU6bO9VZZhutz9ptS2wO0ENzHb4QMB2XydwuUps6RR6R42q+UItf4e0TSM99zByU/RILQaqV/KasP1wVVHgdzC6B3b9Bd2n49wXlyUcKYLdNSmOh3Myjf5aK4j/X3pOnuZAozT93gxgwbKFJYvggaVyD4ry9j94kzd+CuwIoE6EigozKsqvaC57A25dlpog0r0wLjP+28YPV+0Y= 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)(52116014)(376014)(366016)(23010399003)(1800799024)(261009223027099003)(10067099003)(3023799007)(5113699003)(18002099003)(56012099006)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dmg0QTlDWU9TOVpucjBheExIcGhQUjc4VmdrZGpYejU3S1pxcnpvMXR1ZlFV?= =?utf-8?B?MDQxY2FhbDYzSDRBMnk4Zkd0NzJHbDlVQTVEd1JxYkROMGx0Tkg3VW1SWmN5?= =?utf-8?B?SkpMcklEWkNxSm16azBVaWV0QWtjdHhUaWZQVkdIbUh1OGhrOG9GSCtGTWE5?= =?utf-8?B?S3lEZUp1UmZzZ1MyMFNjN0JlNC9vQWw4eFdOZTRWZUxmN3c4VTBLVjZwYUwy?= =?utf-8?B?ZHhmbG1XcmhHQnRKeDRFUzNIOWUvcmQza2crVC9WUmYrWjEwbWFCb056QVRm?= =?utf-8?B?bHNZOG5oVmJSYlFrU0FuVzA1TnRNWjUzVnFHSDJkcFJFYVppYWk2Wngrdndj?= =?utf-8?B?YW9pL216TENtemJPSC83bUFPWGVzeGNUNmFTUzM5VmwxTjZUN3lxOVhJeFRU?= =?utf-8?B?cDgreFljRU9mRmR2WmpTQkhMeGk1d0RkM1hKZG9ZWW9wZ0RXMjJkRFdodURr?= =?utf-8?B?TTVpUzFzUGk1am9hRnZwOGdwdU9TMWtOdHNZZzVRRElsbjRHOXVGUWpNeWh2?= =?utf-8?B?ZUVBN2sreGQ4TTNyZHVYcEFzZXN5UGYvZlJBMlMrT3J1bnBTYi9yVnVyOUo2?= =?utf-8?B?WEVUZHZwUlo2NGM5bXlzMjFVTkJKY0g3blRyS0VzcGtSMzE5TE9hZ3BhWW1z?= =?utf-8?B?aWMyYnpiTzdqYVl4cGF6REw4QWpyZk5tVkZLYVdTbUlyQjlRYllGaTNwM2cz?= =?utf-8?B?VjJDSU5aaytFSm9hNkYwV3RmY1h0V3k5RWQ2UktZZG8xajBoR05DZll0TExk?= =?utf-8?B?Nk0yOVpRUmpWUzJDQ2VGVVFzYVFndlFIb2ttMzIyTEdETHFVUTNmTm5tQm1G?= =?utf-8?B?Vm1VMEd3T09aZ2JMMlhIc3B3dHNId3VZQjRTS1hDODhTNUFudU9MVEgweTNN?= =?utf-8?B?eEo1aE1MNHpQQmlSWFEybSswb3RzMlk5KzJtK0NubnFZdmtPMFAzQ2lnbmc2?= =?utf-8?B?ZmRDcnl5TW54VHYxRTN0amlsS3NuSXM1bnZOb3JjV2VlK0wvYm9sREZaL0Y0?= =?utf-8?B?S08xOUZOM2pEWGw4eGplRTNvWlI4dkhPSHovZnI1bm9ma2EvSGc0eEdHQWto?= =?utf-8?B?dTlMb3phbGZBb3UvSDN6bC9rNHhkMHNjL0NYWkhtaVhnczJsUjdMNmpsUWFy?= =?utf-8?B?cXROMHE3eXdMd2psa25hTnBhdkVML0pJaTVKT0tmWnQ5aXlZZHJHenpWNVJP?= =?utf-8?B?S3M3TVU2dlhTN2hvRi9ldlNUUUxDS0hWK3hOU3Y2U1lrQ1hrVkFCWHFsNHVn?= =?utf-8?B?Z0FIUC9JaEZqbVlPZi9tNmRxWUZKRUdGanJJcElZZUxzb0M0WG52OXN0bE5G?= =?utf-8?B?RE4rN1RUcFlHWWxhUHprcFBSUUM2QjFhZVpZWmlWRm9ZWEN5VGJDTm1VZm5K?= =?utf-8?B?UUtVZVRUSlBMQWZtYjFPTFhIT1BhQm0zWStNd0s3TmlSWEExN1VyNnE2d3N1?= =?utf-8?B?MVFveFRma3R2d2FhZnd0TVRZL21tOEVpTE5IUmVsZDJNYmdCRWZwa21JMUFJ?= =?utf-8?B?a0c1bXVqU09WaS93d0JiS2JtWFM0ZXJkeWR4eHdmTUQyRmZuek13ei9QMGtu?= =?utf-8?B?elE1anNmTkw3cXVPUEF1a0ppZ25CQnByZWFiTmFaWEtzcEpYbmlsaEdqeHh3?= =?utf-8?B?SUg5ZGV6clM1SUVQNEJkK01KQjRYMjNVdm1SeGdqK0FrSXBjSjJNZ0g1UW5X?= =?utf-8?B?b3lXVDJ2YTFhK0JWMUg2ZGFWUDZHUVdKNWd2MHBLbFh4UnloMDFVeUUrbWVx?= =?utf-8?B?YThSemRpRzNJNm1XRnEyOE9GaUdKSStNV3hrb0VYUVVxaFVLRE5EQ1h4SmtJ?= =?utf-8?B?NU5RdnFUK0NPVU10QkM0cmQ0bGlsTXVaTDJZdzhzN2IxZnJzb3ZkU1JmM21i?= =?utf-8?B?ZWxkNWw4ejY4K3VYSUJYUmY2a0xSMkowbnNhekJPU0d1bnZDVExiaHhXLzQ1?= =?utf-8?B?VUs5RjlCTUZIZmJHUmtac3hSZHMwTjdkVTdjVGlEYjYxeDFvTEU4M25FYXZT?= =?utf-8?B?ejNxVlFvR3J0QzNlQmgwU0lyMGJsVzlSbVVTcDNqZmdmV251QnUrS2RJWkxU?= =?utf-8?B?cG10Tk05bUxnK1lMSjBmajArblZwMzRXalJyK1FPTnI0SXQ0TlJ0akl6OFVN?= =?utf-8?B?UnkxUTQvdCs1VktxbjJUeXdxQTU1RmZOdTdLcGd1THdpK0R0bU1VSkIyc0Z2?= =?utf-8?B?azNSbitxRHNVRmJ2V2FNT2NLbEQxMTVKSWFzMGIxTDVzMWlEc0FPZTBJbUov?= =?utf-8?B?dW1RY0FRYlV4b0QrUlpBVmd4ZmkzQ0JKcHREdHVmcERUbUNVR3J0U3dPWUZ2?= =?utf-8?B?WVZ6SXhLOTBvNTFzajIvdk1EenhibzhUTE80S0R1aTBEQitHV2FaWm9oNHFV?= =?utf-8?Q?QZviw8QituVYw87w=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c60800a6-c578-447c-3733-08df2ec78125 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2026 16:30:51.1492 (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: WqJ+C86xRtqnj6CTA3JunGDyitSlm92MBKSnLZRbenMaakPkvdVP+9+yuyQh0nn+Tu0fJW36qMVZEW65CbOCaImOyYeXZcp8sXa42hMcDHw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10683 v3 -> v4: - Patch 31 (NEW) ("VZ: vfio/container: lift the CPR blocker for mdev devices"): CPR for mdev vGPUs, needs a kernel which reverts ef3a3f6a294b Fixes of the issues found by Sashiko AI review. - Patch 4 (NEW) ("migration/cpr-exec: require a file or exec migration URI"): a save or a migration issued with the mode parameter left at cpr-exec after a failed qemu-update ran as cpr-exec and lost the VM - Patch 5 (NEW) ("migration: close the CPR state if the outgoing channel fails to open"): the CPR state was leaked when the file or exec URI couldn't be opened - Patch 14 -> 16 ("migration: yank: Move register instance earlier"): the postcopy guard checked a state which is never reset once postcopy was advised, so every later migrate was refused; the instance is registered with errp instead of &error_abort - Patch 18 -> 20 ("kvm: tolerate ioctls after kvm_close()"): kvm_state is kept allocated and the ioctls return 0 instead of -ENODEV, since kvm_set_irq() and friends dereference it and abort on an error - Patch 20 -> 22 ("migration/cpr: add cpr_is_in_progress()"): the outgoing CPR is told by the open CPR state, not by the runstate, which a snapshot of a paused VM doesn't change - Patch 25 -> 27 ("VZ: migration/cpr-exec: take the vhost-net devices back if exec fails"): the vring call and err fds are set again, VHOST_RESET_OWNER dropped them too v3: http://lore.virtuozzo.com/20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com --- Akihiko Odaki (1): vfio/pci: Grow buffer in vfio_pci_host_match() Andrey Drobyshev (17): 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 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/listener: skip dirty page tracking during CPR 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/container: lift the CPR blocker for mdev devices #VSTOR-103860 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 ++++++++- 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/container-legacy.c | 13 ----- hw/vfio/cpr.c | 11 +++-- hw/vfio/device.c | 29 ++++++++--- hw/vfio/listener.c | 6 +++ hw/vfio/migration-multifd.c | 2 + hw/vfio/migration.c | 38 ++++++++++++++- hw/vfio/pci.c | 25 +++++++--- hw/vfio/region.c | 47 +++++++++++++++++- hw/virtio/virtio-mmio.c | 15 +++++- hw/virtio/virtio-pci.c | 15 +++++- hw/virtio/virtio.c | 10 ++-- include/hw/vfio/vfio-cpr.h | 2 +- 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 | 40 +++++++++++++-- migration/cpr-transfer.c | 33 +++++++++++++ migration/cpr.c | 22 +++++++++ migration/migration.c | 111 +++++++++++++++++++++++------------------- migration/migration.h | 5 ++ migration/multifd.c | 2 + migration/vmstate.c | 7 ++- tests/qtest/q35-test.c | 6 --- 33 files changed, 492 insertions(+), 138 deletions(-) --- base-commit: f3c1d9ef263edfab8d2a273078493bb766dcf8f8 change-id: 20261009-vfio_v1-a176cddd6b64 Best regards, -- Andrey Drobyshev