From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11022135.outbound.protection.outlook.com [52.101.66.135]) by lore.virtuozzo.com (Postfix) with ESMTPS id 8079E8017D for ; Mon, 2 Nov 2026 10:36:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aJPUCOxFdQz3fZbdVnUN70RYX4Fcd2xdLf9Ni5qUKl1hnDYROMTsmbIzdJegW1g0qZitzfF8rTJYaPFM/LCQUXVEoYorPKCHymDA+fsAwUFQJ5fy5mkYRTkNyHxf82B5PiL/zlLRqprYIC2ihcxopGwySE3N8/H9YHA7/5TI88n0X7B7RTrHxl0TcEQSkjV3zi9e6kokeq8MAo6h+paUsDOHVnJTiTmov44wXn4nmOtWE4uz4F4LYt+a4zua/p/i9VYVAP8jUJDDJaqJTUknU44UP7yvu9/SutBB8y2TUtOpVq00qA6Bl5xtCW4ERRczzLZoauVPOJfP0K7CbMUn1g== 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=soT+n/U3sP5tqWYIKvg/A8IEQPHRFFkcUmcFdb99FY8=; b=acLaB6ySE7NTqYnnZ5UmTP6mSsvXoHYvv3NsYDcqCFCRjBNg7szGxI+SMH8ewrop/dVVjyywnsxXSgNirIvKO/LWYfqxjZ1naAf3n9uZO06gbutH+iv3upqXfYUR745b21p5sQpkih1gFE5H8Ue5ggaEQ7uf/MP5/QZSKpQ69io88SAPpUaCou3Q+Z34CVVIpFzqFEuBuiG4DAUcqEOx7+G31Myg48QuxAanFPCUCmW6g/3Su+TajdEN/gZDkYLnVPR3oKOxqyyw9k9WWGh7TdlGprv+d984Wf6otOngU8Mf59XN1qmqll1/Cku3KncUR69/X7yo/hRj8rci8L/Hdw== 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=soT+n/U3sP5tqWYIKvg/A8IEQPHRFFkcUmcFdb99FY8=; b=bEgc5TfNmZ53AA3zp/rS5TZKpewLYOY9n/8G6/lWtns8cDkbfTBJHRcrl+QUQL2z4QqSVYueTn6WCqCocSMBr8wqM30fW2vPLwrqTHtrNHwrjykcqeEmYE6J/1XXrA4cfuRccp+OeKkjJzbN8KkLrWK/kIbacMGU5pyffOGe65Cf+w7UVIqnSPEKKMbti6pwAh6cAYfUmoeaR7Y2ct7C5U7ZVF8z4z+M1GCL6DecX//bs/MeSlXF2o03CVKhp97KP+9bfRtKA1pmU3yTnhwIRFch73of6v0rMVujdIRZLODqL5IaeXOrpEEYJtgG++XOwoMDEa82wWDzL3LLc+czjg== 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:36:22 +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:36:21 +0000 From: Andrey Drobyshev Subject: [PATCH QEMU HCI-8.1 v6 00/34] vfio: support qemu-update with passed through GPU's and vGPU's #VSTOR-103860 Date: Mon, 02 Nov 2026 12:36:15 +0200 Message-Id: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAKBn6GoC/23OPU/DMBAG4L9SeSaVfbYvTickVAkGBgYmhJC/Q o3UGiWpBa3y33HCEAsieTnfPe/dlfS+C74nu82VdD6FPsRTLvBmQ+xBn959FVyuCVBARmlTpTb Et8QqzWq0zjk0KEie/ux8G77mpBfytH98nj7v7x4qtWXk9XegP5sPb4cpb+oeQj/E7nvendgM/ 63Jj1agfcOcNIoKdZtCN5zj5RK3Nh7n5ASFZXyxkK3gXEhpqYZGrFleWlwsn2wtVG2N1MrLNSs KC3SxIlvFtURUwOm6laUtbpbZGk1Nyy06BrBmsbC82IvTzdJ5EGhsA/6vHcfxB7IfqZzxAQAA X-Change-ID: 20261009-vfio_v1-a176cddd6b64 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: 7fe0af55-b2b1-492e-6e69-08df38cd2310 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|261028144727099003|261021123027099003|261026121527099003|261021121427099003|261026140227099003|261022105027099003|261022075727099003|10067099003|18002099003|5113699003|3023799007; X-Microsoft-Antispam-Message-Info: 4jEBqmdvvpqVYHgPgr+pEDaVmkcjcei7uDbsfQmYBJYWz2TeAffGAHbH9CoQuZgPv9XsILYW8XgjXoV0rb528EHThc0atDae24YUoiYAIFgl/p51vSAyQlAEBVzTrqgHb6C7GwdIGnEE1A8IxngyhVuj37m8QBH/smUFMPtTbtUlZYhSNgDUd0GVTp0vagguZFua/lLvzagizQFGDNsclvo/W4n4ACAmjKchqGFjUV8tgm3ZQm86LGOWVb38Kud1/pUAV/U6POJpA+V2tVQhwcZuc3JMSlhKwIEfDiQz7nUQeNAZ1fAfWwQDSGF4WHMGoBs+B/dNxIX9CpZwfSP8I3I2QcYq3rVcBT+9EcD0JhIlQMeDcJ6xCAcCUqbNHciuq/4IvAO+bXRehy17N4vOCdnOyhs02F5G2OPzX1wno3uiLQTODf44MJHVGVcbDJHNuhEq5O9S8qUzu9crVXRphAS8JbwvoT6PeJ4LNatefQ/WkgPa7XCd85GrmCntKcoBxoGF/A9N2LmdItOnStTpZOYLocbK8iR/8lqtVU3tDnL4c321HnfwkJuVAums8ftDRsXiiPD18XEWxVtytzRCnUKbfgoxfULP/OPDmEmxcghEzwKjyFSdDH8EJjIMiOKUiLFCm4nHNk+8DtVo7JJwKfiiu5PX8WpKjFt7Tb6t3zgwphi/9GMlGqPI6zLORvKX 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)(261028144727099003)(261021123027099003)(261026121527099003)(261021121427099003)(261026140227099003)(261022105027099003)(261022075727099003)(10067099003)(18002099003)(5113699003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M0YrUXh6S0hXY3BWTmVWcHpMakREWkNucnZhcTdDSXltUG5SdVZDQzRlYVNp?= =?utf-8?B?a1dsejNSYzk3ZTZMeTdQaEQvSERKcXJzcmVEaVBPdDB1aHRVam1wWExxSllM?= =?utf-8?B?VTd5ZWR1dkZCTDgvV1JwZFc4aEp4cTYvMHFCYm05d09qT1VmazRCRzMyUzdC?= =?utf-8?B?ZE52N01BQUF5dWdIUlNTc2p4SFdvbzBpRWRGTkpkTU9nbmhmR21NeXJBaXg1?= =?utf-8?B?MDc4SDQydU5SNXF6MEpkb0l6NjlqWUlrYXZGQ3d3MTc0R0RRRTNxNFhpcWVP?= =?utf-8?B?NFZrMURlcHdUZUE5dis3dDh3UW16Z3dPbDZtZnR0a056NEVUNUx2d3BHSlND?= =?utf-8?B?ajlvelhWT2hpZ3BIMG1FT1Zscnl4eGtvcnZaVnBZWllaNDNyTDJvcUZLcTl2?= =?utf-8?B?V3NoNEFJaGpkWWNZb1RwVDhSOHpxR1BMdTlKVjI3L3ZGK0JDak9GZXk3OXVj?= =?utf-8?B?TVNCb1phUVNpMUVCb0x1ZTEvYjlaZU1HUlhZVlIrRGsvQU1rOHJCRXFFRXNv?= =?utf-8?B?NTF5U2FZbHlrVk1FdUQ3Zkg5MytVVzFXYUJKS0FDQWNRSGdMMjN1MG9qY3FN?= =?utf-8?B?ditNcXNKd3VKNHRxdjdtdGFCMzI5SFdWVkcxV1ZmRjVnclZyUjdkU25EbnQz?= =?utf-8?B?cmRnR1ZBK21OMGRYeDEySWEra3Qra2dNYzlYM0tNcUx6Qk43cmlKYVJlNUZH?= =?utf-8?B?dlJySU43bi9CQnN2K1JrMkw3WVpQWVk4T0dUdFAvbUgrR05vemhjbXBreWNX?= =?utf-8?B?Tk1PMXQ3bSs2UWZsOVhOaGx3VVdPVXVjNnlKdnN1Q2lBU1BHTVI3b3A5aXcv?= =?utf-8?B?bXhwb1Eza3dSazVnc0FUalVDVVlLL056a1h0QmNBU1R0SzdnREhVTEJzVEhp?= =?utf-8?B?UXJzY0dLelNtRVFQZ1lTTmVUaXg1QzZPZUJ4ODRvTmxnS2tMNkxFUmFJS1NT?= =?utf-8?B?emtHeXZIRTNuTEpKVGhITGtrdisvcG9rVzY5Sm9kazVhZkRKTDljTXN1aDk3?= =?utf-8?B?TWt1Q0tFd2ZuNFk1T1NRR1ZMSzVubnBrcUE5YS9OYitsUzYzQzlpaW9wVFEx?= =?utf-8?B?NVBkeXFXR0krejZCZXhRM082c0RUemFLMm15OEx1MkpKYU5FM1RSK0t6U2hK?= =?utf-8?B?TDFOSGs0NEdaRldYU2w5amJlMnI0OG4xcmR0M1MrQnVFMXJac1dnTlJiQktp?= =?utf-8?B?ME5aSHN6TXZLUVh1VWFHN0x3NkdST0RRVWM5d1FaSDkvOWJVNnh5YmNIcUZK?= =?utf-8?B?VEhzSkJpZzZMbXlVdnZJTmxSU0crSk9jVHZvUGo4aE5xRU1DbnptWXM3UUJm?= =?utf-8?B?Ny9yakRiTXYwQ20xeVI5dVhyaURTQ0w5c29MSitwbEJucDlqMXUvanFDN05h?= =?utf-8?B?dUkybkx6eEthUUQ2cXR0MW93TXlOaFRsNTdvWUppUnE1Qit6RWoybDVMMjkw?= =?utf-8?B?SFB1cTcvNkJCTkVYNkdWVzUySDB6Yjd4QXZIbUt0ZHBtMks3d2VqM2tSOEN5?= =?utf-8?B?T1djRFJhc0NRbG5QVmViSFhSSXZTN3hraS9tRFhEM3FYbENEMTM2Vkd4c0kx?= =?utf-8?B?QVpETWRWTDFVanBaZ3JhSlJ3K0tpTlBSNFJQRnR1bUpmM1ZPcVF2aDl0VW5h?= =?utf-8?B?S2ltS0tZSEFNaVVNTk54OWNUaHgxdGFJNFBpS050djRucmZrcTBBd3ZpWE5z?= =?utf-8?B?K2tGL01zd3N1VTZROHR3cEh5Q2NVbkw0N3ZUTnoxZWJHcHh3V0krVUdpajVM?= =?utf-8?B?WmY3MXgyWXkzYjMrazVsSWsrazFLOExPcnhXNjZiMVBzYzlxVWNZZ1ZFS242?= =?utf-8?B?TkpJMFBoRUo4Sk9IeS8vbmxhRjNlaE95eTdGcDZDbENNb1ZpUm8rVE5PaXNT?= =?utf-8?B?NUVWUHBYc0F1VXdRUzZkRjBVN2xuUVVHaEpsVEw0RWtRNUwxK1V5NVVBNjEr?= =?utf-8?B?bUtwQXIvd2hnT3Q3eVk5Vmt0NVR6N2pCMUZhTG1jdmR0WTJzUmpab1BZZzVk?= =?utf-8?B?NkNydFFjeU9tSXJUbWRxNnJxQWd1L2ltamNHK3NhVGRxSTI0dGZ2dlZnanNF?= =?utf-8?B?Z2s2bC8yMGlPVkVQMkZMRlVKVTRUeTRRbjVMNGZrY1pDK082d1pBMWg1SGM4?= =?utf-8?B?Z21EWTJlZUxBZ3lBcHlFVXhEcGhuTmNLa3EyMWNPV2tzTjBiSEZCdHE3OGJC?= =?utf-8?B?cDNGY1ZOOVJ1MTMwUHZQMHdCaGUveE8wYmlvcHFGWTB3N21QaUMySVpOWjdP?= =?utf-8?B?OXpDakZQLzJwbzRGRVV0YjRlREk0ZWNzMG93cEFsRmtNUW5haW5COUVORnE5?= =?utf-8?B?aFpvQXFta0pEcWt4Sjhua0h6SkVsWGp4amtpTnlmb0hzNzNGb0ZGcG42dk1J?= =?utf-8?Q?P3KkI/LVUC9Yn8Lc=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fe0af55-b2b1-492e-6e69-08df38cd2310 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:21.9158 (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: ZTWu+KLnRXkySVrFBlvcDbckuETYdhvm1RmrwbARn3Wbi+ka8zjd4ovDqI1Us4VEu9G76xnkMIWhMgORlvvZ1jrzf/KgM2wZNriB1gWqI3U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8199 v5 -> v6: mdev vGPUs are no longer supported, only SR-IOV vGPUs and whole GPUs (#VSTOR-150598 and #VSTOR-150595 closed). - Patch 34 ("VZ: vfio/container: lift the CPR blocker for mdev devices") dropped: it only let cpr-exec through for mdev devices - Patch 35 ("VZ: migration: keep the estimate and wait over starved windows") dropped: it only mattered for a device without pre-copy; with pre-copy the sender isn't starved before the switchover - Patch 36 -> 34 ("VZ: vfio/migration: don't wait for stop-copy-only device state"): reduced to hw/vfio/migration.c: the stop-copy size is reported as pending only while the device still has something to pre-copy, so once it has drained the rest decides the switchover on its own; the savevm and migration.c changes are gone. Tagged #VSTOR-141821 instead of the closed #VSTOR-150595 Fixes of the issues found by Sashiko AI review. - Patch 27 ("vfio/listener: skip dirty page tracking during CPR") replaced by "migration/ram: don't start dirty logging in CPR modes": no RAM is migrated in a CPR mode, so the dirty log isn't started at all, instead of VFIO alone skipping it; that also closed the gap where VFIO tracking stayed off with the log left on by another user - Patch 34 ("VZ: vfio/migration: don't wait for stop-copy-only device state"): a failed pre-copy size query no longer passes for a drained device v5: http://lore.virtuozzo.com/20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com --- Akihiko Odaki (1): vfio/pci: Grow buffer in vfio_pci_host_match() Andrey Drobyshev (20): 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: 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 | 8 +-- 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 | 64 +++++++++++++++++++-- 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 | 44 +++++++++++++-- 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, 534 insertions(+), 140 deletions(-) --- base-commit: 02f55118bcb0533ce4c6544458c30803d96bea4a change-id: 20261009-vfio_v1-a176cddd6b64 Best regards, -- Andrey Drobyshev